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 10 pull requests #82847

Closed
wants to merge 35 commits into from

Conversation

Dylan-DPC-zz
Copy link

Successful merges:

Failed merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

the8472 and others added 30 commits February 13, 2021 19:35
Whether for Rust's own `target_os`, LLVM's triples, or GNU config's, the
OS-related have fields have been for code running *on* that OS, not code
that is *part* of the OS.

The difference is huge, as syscall interfaces are nothing like
freestanding interfaces. Kernels are (hypervisors and other more exotic
situations aside) freestanding programs that use the interfaces provided
by the hardware. It's *those* interfaces, the ones external to the
program being built and its software dependencies, that are the content
of the target.

For the Linux Kernel in particular, `target_env: "gnu"` is removed for
the same reason: that `-gnu` refers to glibc or GNU/linux, neither of
which applies to the kernel itself.

Relates to rust-lang#74247

Thanks @ojeda for catching some things.
- Use spans for deprecated attributes
- Use a proper diagnostic for unknown passes, instead of error logging
- Add tests for unknown passes
- Improve some wording in diagnostics
…`println!`

This also adds a test for the output and fixes `rustc_attr` to properly
know that `plugins` is a valid attribute.
Fixes rust-lang#79040

Unresolved questions:

Why does this change output the diagnostic twice?

Why does the CI fail when the errors are pointed out (UI tests)?
 ### Overview

    This commit begins the implementation work for RFC 2945. For more
    information, see the rendered RFC [1] and tracking issue [2].

    A boolean `unwind` payload is added to the `C`, `System`, `Stdcall`,
    and `Thiscall` variants, marking whether unwinding across FFI
    boundaries is acceptable. The cases where each of these variants'
    `unwind` member is true correspond with the `C-unwind`,
    `system-unwind`, `stdcall-unwind`, and `thiscall-unwind` ABI strings
    introduced in RFC 2945 [3].

 ### Feature Gate and Unstable Book

    This commit adds a `c_unwind` feature gate for the new ABI strings.
    Tests for this feature gate are included in `src/test/ui/c-unwind/`,
    which ensure that this feature gate works correctly for each of the
    new ABIs.

    A new language features entry in the unstable book is added as well.

 ### Further Work To Be Done

    This commit does not proceed to implement the new unwinding ABIs,
    and is intentionally scoped specifically to *defining* the ABIs and
    their feature flag.

 ### One Note on Test Churn

    This will lead to some test churn, in re-blessing hash tests, as the
    deleted comment in `src/librustc_target/spec/abi.rs` mentioned,
    because we can no longer guarantee the ordering of the `Abi`
    variants.

    While this is a downside, this decision was made bearing in mind
    that RFC 2945 states the following, in the "Other `unwind` Strings"
    section [3]:

    >  More unwind variants of existing ABI strings may be introduced,
    >  with the same semantics, without an additional RFC.

    Adding a new variant for each of these cases, rather than specifying
    a payload for a given ABI, would quickly become untenable, and make
    working with the `Abi` enum prone to mistakes.

    This approach encodes the unwinding information *into* a given ABI,
    to account for the future possibility of other `-unwind` ABI
    strings.

 ### Ignore Directives

    `ignore-*` directives are used in two of our `*-unwind` ABI test
    cases.

    Specifically, the `stdcall-unwind` and `thiscall-unwind` test cases
    ignore architectures that do not support `stdcall` and
    `thiscall`, respectively.

    These directives are cribbed from
    `src/test/ui/c-variadic/variadic-ffi-1.rs` for `stdcall`, and
    `src/test/ui/extern/extern-thiscall.rs` for `thiscall`.

    This would otherwise fail on some targets, see:
    rust-lang-ci@fcf697f

 ### Footnotes

[1]: https://github.com/rust-lang/rfcs/blob/master/text/2945-c-unwind-abi.md
[2]: rust-lang#74990
[3]: https://github.com/rust-lang/rfcs/blob/master/text/2945-c-unwind-abi.md#other-unwind-abi-strings
 ### Changes

    This commit implements unwind ABI's, specified in RFC 2945.

    We adjust the `rustc_middle::ty::layout::fn_can_unwind` function,
    used to compute whether or not a `FnAbi` object represents a
    function that should be able to unwind when `panic=unwind` is in
    use.

    Changes are also made to
    `rustc_mir_build::build::should_abort_on_panic` so that the
    function ABI is used to determind whether it should abort, assuming
    that the `panic=unwind` strategy is being used, and no explicit
    unwind attribute was provided.

 ### Tests

    Unit tests, checking that the behavior is correct for `C-unwind`,
    `stdcall-unwind`, `system-unwind`, and `thiscall-unwind`, are
    included. These alternative `unwind` ABI strings are specified in
    RFC 2945, in the "_Other `unwind` ABI strings_" section.

    Additionally, a test case is included to assert that the LLVM IR
    generated for an external function defined with the `C-unwind` ABI
    will be appropriately labeled with the `nounwind` LLVM attribute
    when the `panic=abort` compilation flag is used.

 ### Ignore Directives

    This commit uses `ignore-*` directives in two of our `*-unwind` ABI
    test cases.

    Specifically, the `stdcall-unwind` and `thiscall-unwind` test cases
    ignore architectures that do not support `stdcall` and `thiscall`,
    respectively.

    These directives are cribbed from
    `src/test/ui/c-variadic/variadic-ffi-1.rs` for `stdcall`, and
    `src/test/ui/extern/extern-thiscall.rs` for `thiscall`.
 ### Integration Tests

    This commit introduces some new fixtures to the `run-make-fulldeps`
    test suite.

        * c-unwind-abi-catch-panic: Exercise unwinding a panic. This
          catches a panic across an FFI boundary and downcasts it into
          an integer.

        * c-unwind-abi-catch-lib-panic: This is similar to the previous
         `*catch-panic` test, however in this case the Rust code that
         panics resides in a separate crate.

 ### Add `rust_eh_personality` to `#[no_std]` alloc tests

    This commit addresses some test failures that now occur in the
    following two tests:

        * no_std-alloc-error-handler-custom.rs
        * no_std-alloc-error-handler-default.rs

    Each test now defines a `rust_eh_personality` extern function, in
    the same manner as shown in the "Writing an executable without
    stdlib" section of the `lang_items` documentation here:
    https://doc.rust-lang.org/unstable-book/language-features/lang-items.html#writing-an-executable-without-stdlib

    Without this change, these tests would fail to compile due to a
    linking error explaining that there was an "undefined reference
    to `rust_eh_personality'."

 ### Updated hash

    * update 32-bit hash in `impl1` test

 ### Panics

    This commit uses `panic!` macro invocations that return a string,
    rather than using an integer as a panic payload.

    Doing so avoids the following warnings that were observed during
    rollup for the `*-msvc-1` targets:

    ```
    warning: panic message is not a string literal
      --> panic.rs:10:16
       |
    10 |         panic!(x); // That is too big!
       |                ^
       |
       = note: `#[warn(non_fmt_panic)]` on by default
       = note: this is no longer accepted in Rust 2021
    help: add a "{}" format string to Display the message
       |
    10 |         panic!("{}", x); // That is too big!
       |                ^^^^^
    help: or use std::panic::panic_any instead
       |
    10 |         std::panic::panic_any(x); // That is too big!
       |         ^^^^^^^^^^^^^^^^^^^^^

    warning: 1 warning emitted
    ```

    See: https://github.com/rust-lang-ci/rust/runs/1992118428

    As these errors imply, panicking without a format string will be
    disallowed in Rust 2021, per rust-lang#78500.
 ### Add debug assertion to check `AbiDatas` ordering

    This makes a small alteration to `Abi::index`, so that we include a
    debug assertion to check that the index we are returning corresponds
    with the same abi in our data array.

    This will help prevent ordering bugs in the future, which can
    manifest in rather strange errors.

 ### Using exhaustive ABI matches

    This slightly modifies the changes from our previous commits,
    favoring exhaustive matches in place of `_ => ...` fall-through
    arms.

    This should help with maintenance in the future, when additional
    ABI's are added, or when existing ABI's are modified.

 ### List all `-unwind` ABI's in unstable book

    This updates the `c-unwind` page in the unstable book to list _all_
    of the other ABI strings that are introduced by this feature gate.

    Now, all of the ABI's specified by RFC 2945 are shown.

Co-authored-by: Amanieu d'Antras <[email protected]>
Co-authored-by: Niko Matsakis <[email protected]>
This is needed for the next commit, which needs access to the `cx` from
within the `decorate` closure.

- Change `as_local_hir_id` to an associated function, since it only
  needs a `TyCtxt`
- Change `source_span_for_markdown_range` to only take a `TyCtxt`
This ownership kind is only constructed in the case of path attributes like `#[path = ".."]` without a file name segment, which always represent some kind of directories and will produce and error on attempt to parse them as a module file.
…data

Also don't push the paths on the stack directly in `fn parse_external_mod`, return them instead.
…e with the same index after calling next_back
The following functions are now unstably const:

- Option::transpose
- Option::flatten
- Result::transpose
…d-abi, r=Amanieu

Implement RFC 2945: "C-unwind" ABI

## Implement RFC 2945: "C-unwind" ABI

This branch implements [RFC 2945]. The tracking issue for this RFC is rust-lang#74990.

The feature gate for the issue is `#![feature(c_unwind)]`.

This RFC was created as part of the ffi-unwind project group tracked at rust-lang/lang-team#19.

### Changes

Further details will be provided in commit messages, but a high-level overview
of the changes follows:

* A boolean `unwind` payload is added to the `C`, `System`, `Stdcall`,
and `Thiscall` variants, marking whether unwinding across FFI boundaries is
acceptable. The cases where each of these variants' `unwind` member is true
correspond with the `C-unwind`, `system-unwind`, `stdcall-unwind`, and
`thiscall-unwind` ABI strings introduced in RFC 2945 [3].

* This commit adds a `c_unwind` feature gate for the new ABI strings.
Tests for this feature gate are included in `src/test/ui/c-unwind/`, which
ensure that this feature gate works correctly for each of the new ABIs.
A new language features entry in the unstable book is added as well.

* We adjust the `rustc_middle::ty::layout::fn_can_unwind` function,
used to compute whether or not a `FnAbi` object represents a function that
should be able to unwind when `panic=unwind` is in use.

* Changes are also made to
`rustc_mir_build::build::should_abort_on_panic` so that the function ABI is
used to determind whether it should abort, assuming that the `panic=unwind`
strategy is being used, and no explicit unwind attribute was provided.

[RFC 2945]: https://github.com/rust-lang/rfcs/blob/master/text/2945-c-unwind-abi.md
…, r=joshtriplett

Change built-in kernel targets to be os = none throughout

Whether for Rust's own `target_os`, LLVM's triples, or GNU config's, the
OS-related have fields have been for code running *on* that OS, not code
hat is *part* of the OS.

The difference is huge, as syscall interfaces are nothing like
freestanding interfaces. Kernels are (hypervisors and other more exotic
situations aside) freestanding programs that use the interfaces provided
by the hardware. It's *those* interfaces, the ones external to the
program being built and its software dependencies, that are the content
of the target.

For the Linux Kernel in particular, `target_env: "gnu"` is removed for
the same reason: that `-gnu` refers to glibc or GNU/linux, neither of
which applies to the kernel itself.

Relates to rust-lang#74247
bypass auto_da_alloc for metadata files

This saves about 0.7% when rerunning the UI test suite. I.e. when the metadata files exist and will be overwritten. No improvements expected for a clean build. So it might show up in incr-patched perf results.
```
regular rename:

Benchmark rust-lang#1: touch src/tools/compiletest/src/main.rs ; RUSTC_WRAPPER="" schedtool -B -e ./x.py test src/test/ui
  Time (mean ± σ):     47.305 s ±  0.170 s    [User: 1631.540 s, System: 412.648 s]
  Range (min … max):   47.125 s … 47.856 s    20 runs

non-durable rename:

Benchmark rust-lang#1: touch src/tools/compiletest/src/main.rs ; RUSTC_WRAPPER="" schedtool -B -e ./x.py test src/test/ui
  Time (mean ± σ):     46.930 s ±  0.064 s    [User: 1634.344 s, System: 396.038 s]
  Range (min … max):   46.759 s … 47.043 s    20 runs
```

There are more places that trigger auto_da_alloc behavior by overwriting existing files with O_TRUNC, but those are much harder to locate because `O_TRUNC` is set on `open()` but the writeback is triggered on `close()`. The latter is the part which shows up in profiles.
…Jung

Make some Option, Result methods unstably const

The following methods are now unstably const:

- Option::transpose
- Option::flatten
- Result::flatten

While some methods for could likely be made `const` in the future, nearly all of them require something to be dropped at compile-time, which isn't currently supported. The functions listed above should have a trivial path to stabilization.
Prevent specialized ZipImpl from calling `__iterator_get_unchecked` twice with the same index

Fixes rust-lang#82291

It's open for review, but conflicts with rust-lang#82289, wait before merging. The conflict involves only the new test, so it should be rather trivial to fix.
…laumeGomez

Remove RefCell around `module_trait_cache`

This builds on rust-lang#82018 and should not be merged before.

## Don't require a `DocContext` for `report_diagnostic`

This is needed for the next commit, which needs mutable access to the `cx` from
within the `decorate` closure.

- Change `as_local_hir_id` to an associated function, since it only
  needs a `TyCtxt`
- Change `source_span_for_markdown_range` to only take a `TyCtxt`

##  Remove RefCell around module_trait_cache

This is mostly just changing lots of functions from `&DocContext` to `&mut DocContext`.
expand: Refactor module loading

This is an accompanying PR to rust-lang#82399, but they can be landed independently.
See individual commits for more details.

Anyone should be able to review this equally well because all people actually familiar with this code left the project.
Improve transmute docs with further clarifications

Closes rust-lang#82493.

Please let me know if any of the new wording sounds off, English is not my mother tongue.
…eGomez

Cleanup rustdoc warnings

## Clean up error reporting for deprecated passes

Using `error!` here goes all the way back to the original commit, rust-lang#8540. I don't see any reason to use logging; rustdoc should use diagnostics wherever possible. See rust-lang#81932 (comment) for further context.

- Use spans for deprecated attributes
- Use a proper diagnostic for unknown passes, instead of error logging
- Add tests for unknown passes
- Improve some wording in diagnostics

##  Report that `doc(plugins)` doesn't work using diagnostics instead of `eprintln!`

This also adds a test for the output.

This was added in rust-lang#52194. I don't see any particular reason not to use diagnostics here, I think it was just missed in rust-lang#50541.
Fix diagnostic suggests adding type `[type error]`

Fixes rust-lang#79040

### Unresolved questions:

<del>Why does this change output the diagnostic twice (`src/test/ui/79040.rs`)?</del> Thanks ````@oli-obk````
@rustbot rustbot added the rollup A PR which is a rollup label Mar 6, 2021
@Dylan-DPC-zz
Copy link
Author

@bors r+ rollup=never p=5

@bors
Copy link
Contributor

bors commented Mar 6, 2021

📌 Commit 44cb131 has been approved by Dylan-DPC

@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Mar 6, 2021
@bors
Copy link
Contributor

bors commented Mar 7, 2021

⌛ Testing commit 44cb131 with merge 0efbede2cacaee3daf295eafa75085165de475ec...

@rust-log-analyzer
Copy link
Collaborator

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

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

34 LL |             invalid_instruction
35    |             ^^^^^^^^^^^^^^^^^^^
36 
- error: invalid instruction mnemonic 'invalid_instruction'
-   --> $DIR/srcloc.rs:26:13
- LL |             invalid_instruction
-    |             ^
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:4:13
- LL |             invalid_instruction
-    |             ^^^^^^^^^^^^^^^^^^^
- 
- 
- error: invalid instruction mnemonic 'invalid_instruction'
-   --> $DIR/srcloc.rs:33:13
- LL |             invalid_instruction
-    |             ^
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:4:13
- LL |             invalid_instruction
-    |             ^^^^^^^^^^^^^^^^^^^
- 
- 
- error: invalid instruction mnemonic 'invalid_instruction'
-   --> $DIR/srcloc.rs:38:14
-    |
- LL |         asm!(concat!("invalid", "_", "instruction"));
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:2:2
- LL |     invalid_instruction
-    |     ^^^^^^^^^^^^^^^^^^^
- 
- 
- warning: scale factor without index register is ignored
-   --> $DIR/srcloc.rs:41:15
-    |
- LL |         asm!("movaps %xmm3, (%esi, 2)", options(att_syntax));
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:1:23
-    |
- LL |     movaps %xmm3, (%esi, 2)
- 
- 
- error: invalid instruction mnemonic 'invalid_instruction'
-   --> $DIR/srcloc.rs:45:14
- LL |             "invalid_instruction",
-    |              ^
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:2:2
- LL |     invalid_instruction
-    |     ^^^^^^^^^^^^^^^^^^^
- 
- 
- error: invalid instruction mnemonic 'invalid_instruction'
-   --> $DIR/srcloc.rs:51:14
- LL |             "invalid_instruction",
-    |              ^
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:3:1
- LL | invalid_instruction
-    | ^^^^^^^^^^^^^^^^^^^
- 
- 
- error: invalid instruction mnemonic 'invalid_instruction'
-   --> $DIR/srcloc.rs:58:14
- LL |             "invalid_instruction",
-    |              ^
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:4:1
- LL | invalid_instruction
-    | ^^^^^^^^^^^^^^^^^^^
- 
- 
- error: invalid instruction mnemonic 'invalid_instruction'
-   --> $DIR/srcloc.rs:65:13
-    |
- LL |             concat!("invalid", "_", "instruction"),
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:3:1
- LL | invalid_instruction
-    | ^^^^^^^^^^^^^^^^^^^
- 
- 
- error: invalid instruction mnemonic 'invalid_instruction'
-   --> $DIR/srcloc.rs:72:13
-    |
- LL |             concat!("invalid", "_", "instruction"),
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:3:1
- LL | invalid_instruction
-    | ^^^^^^^^^^^^^^^^^^^
- 
- 
- error: invalid instruction mnemonic 'invalid_instruction1'
-   --> $DIR/srcloc.rs:79:14
- LL |             "invalid_instruction1",
-    |              ^
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:2:2
- LL |     invalid_instruction1
-    |     ^^^^^^^^^^^^^^^^^^^^
- 
- 
- error: invalid instruction mnemonic 'invalid_instruction2'
-   --> $DIR/srcloc.rs:80:14
- LL |             "invalid_instruction2",
-    |              ^
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:3:1
- LL | invalid_instruction2
-    | ^^^^^^^^^^^^^^^^^^^^
- 
- 
- error: invalid instruction mnemonic 'invalid_instruction1'
-   --> $DIR/srcloc.rs:86:13
- LL |             concat!(
-    |             ^
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:2:2
- LL |     invalid_instruction1
-    |     ^^^^^^^^^^^^^^^^^^^^
- 
- 
- error: invalid instruction mnemonic 'invalid_instruction2'
-   --> $DIR/srcloc.rs:86:13
- LL |             concat!(
-    |             ^
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:3:1
-    |
Some tests failed in compiletest suite=ui compare_mode=Nll mode=ui host=x86_64-unknown-linux-gnu target=x86_64-unknown-linux-gnu
- LL | invalid_instruction2
- 
- 
- error: invalid instruction mnemonic 'invalid_instruction1'
-   --> $DIR/srcloc.rs:95:13
- LL |             concat!(
-    |             ^
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:2:2
- LL |     invalid_instruction1
-    |     ^^^^^^^^^^^^^^^^^^^^
- 
- 
- error: invalid instruction mnemonic 'invalid_instruction2'
-   --> $DIR/srcloc.rs:95:13
- LL |             concat!(
-    |             ^
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:3:1
- LL | invalid_instruction2
-    | ^^^^^^^^^^^^^^^^^^^^
- 
- 
- error: invalid instruction mnemonic 'invalid_instruction3'
-   --> $DIR/srcloc.rs:99:13
- LL |             concat!(
-    |             ^
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:4:1
- LL | invalid_instruction3
-    | ^^^^^^^^^^^^^^^^^^^^
- 
- 
- error: invalid instruction mnemonic 'invalid_instruction4'
-   --> $DIR/srcloc.rs:99:13
- LL |             concat!(
-    |             ^
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:5:1
- LL | invalid_instruction4
-    | ^^^^^^^^^^^^^^^^^^^^
- 
- 
- error: invalid instruction mnemonic 'invalid_instruction1'
-   --> $DIR/srcloc.rs:110:13
- LL |             concat!(
-    |             ^
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:2:2
- LL |     invalid_instruction1
-    |     ^^^^^^^^^^^^^^^^^^^^
- 
- 
- error: invalid instruction mnemonic 'invalid_instruction2'
-   --> $DIR/srcloc.rs:110:13
- LL |             concat!(
-    |             ^
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:3:1
- LL | invalid_instruction2
-    | ^^^^^^^^^^^^^^^^^^^^
- 
- 
- error: invalid instruction mnemonic 'invalid_instruction3'
-   --> $DIR/srcloc.rs:114:13
- LL |             concat!(
-    |             ^
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:5:1
- LL | invalid_instruction3
-    | ^^^^^^^^^^^^^^^^^^^^
- 
- 
- error: invalid instruction mnemonic 'invalid_instruction4'
-   --> $DIR/srcloc.rs:114:13
- LL |             concat!(
-    |             ^
-    |
- note: instantiated into assembly here
- note: instantiated into assembly here
-   --> <inline asm>:6:1
- LL | invalid_instruction4
-    | ^^^^^^^^^^^^^^^^^^^^
- 
- error: aborting due to 23 previous errors; 1 warning emitted
- error: aborting due to 23 previous errors; 1 warning emitted
+ error: aborting due to 3 previous errors
290 
291 


The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/asm/srcloc.nll/srcloc.nll.stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args asm/srcloc.rs`
error: 1 errors occurred comparing output.
status: exit code: 1
status: exit code: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/asm/srcloc.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zemit-future-incompat-report" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/asm/srcloc.nll" "-Zborrowck=mir" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/asm/srcloc.nll/auxiliary"
------------------------------------------

------------------------------------------
stderr:
stderr:
------------------------------------------
error: invalid instruction mnemonic 'invalid_instruction'
   |
   |
LL |         asm!("invalid_instruction");
   |
note: instantiated into assembly here
note: instantiated into assembly here
  --> <inline asm>:2:2
LL |     invalid_instruction
   |     ^^^^^^^^^^^^^^^^^^^


error: invalid instruction mnemonic 'invalid_instruction'
   |
LL |             invalid_instruction
   |             ^
   |
   |
note: instantiated into assembly here
  --> <inline asm>:3:13
LL |             invalid_instruction
   |             ^^^^^^^^^^^^^^^^^^^


error: invalid instruction mnemonic 'invalid_instruction'
   |
LL |             invalid_instruction
   |             ^
   |
   |
note: instantiated into assembly here
  --> <inline asm>:3:13
LL |             invalid_instruction
   |             ^^^^^^^^^^^^^^^^^^^

error: aborting due to 3 previous errors
---
test result: FAILED. 11417 passed; 1 failed; 121 ignored; 0 measured; 0 filtered out; finished in 106.94s



command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/ui" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--suite" "ui" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" "--host-rustcflags" "-Crpath -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python3" "--lldb-python" "/usr/bin/python3" "--gdb" "/usr/bin/gdb" "--llvm-version" "12.0.0-rust-1.52.0-nightly" "--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 cfguard codegen core coroutines coverage debuginfocodeview debuginfodwarf debuginfogsym debuginfomsf debuginfopdb demangle dlltooldriver dwarflinker engine executionengine extensions filecheck frontendopenacc frontendopenmp fuzzmutate globalisel hellonew hexagon hexagonasmparser hexagoncodegen hexagondesc hexagondisassembler hexagoninfo instcombine instrumentation interfacestub interpreter ipo irreader jitlink libdriver lineeditor linker lto 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 object objectyaml option orcjit orcshared orctargetprocess passes powerpc powerpcasmparser powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata remarks riscv riscvasmparser riscvcodegen riscvdesc riscvdisassembler riscvinfo runtimedyld scalaropts selectiondag sparc sparcasmparser sparccodegen sparcdesc sparcdisassembler sparcinfo support symbolize systemz systemzasmparser systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target textapi transformutils vectorize webassembly webassemblyasmparser webassemblycodegen webassemblydesc webassemblydisassembler webassemblyinfo windowsmanifest x86 x86asmparser x86codegen x86desc x86disassembler x86info xray" "--cc" "" "--cxx" "" "--cflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always" "--compare-mode" "nll"


failed to run: /checkout/obj/build/bootstrap/debug/bootstrap --stage 2 test
Build completed unsuccessfully in 0:20:19

@bors
Copy link
Contributor

bors commented Mar 7, 2021

💔 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 Mar 7, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rollup A PR which is a rollup S-waiting-on-review Status: Awaiting review from the assignee but also interested parties.
Projects
None yet
Development

Successfully merging this pull request may close these issues.