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

WIP PROOF-OF-CONCEPT: experiment with very strict pointer provenance #95199

Closed
wants to merge 10 commits into from

Conversation

Gankra
Copy link
Contributor

@Gankra Gankra commented Mar 22, 2022

This patch series examines the question: how bad would it be if we adopted
an extremely strict pointer provenance model that completely banished all
int<->ptr casts.

The key insight to making this approach even vaguely pallatable is the

ptr.with_addr(addr) -> ptr

function, which takes a pointer and an address and creates a new pointer
with that address and the provenance of the input pointer. In this way
the "chain of custody" is completely and dynamically restored, making the
model suitable even for dynamic checkers like CHERI and Miri.

This is not a formal model, but lots of the docs discussing the model
have been updated to try to the concept of this design in the hopes
that it can be iterated on.

Many new methods have been added to ptr to attempt to fill in semantic gaps
that this introduces, or to just get the ball rolling on "hey this is a
problem that needs to be solved, here's a bad solution as a starting point".

@rustbot rustbot added the T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. label Mar 22, 2022
@rust-highfive
Copy link
Collaborator

r? @Mark-Simulacrum

(rust-highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Mar 22, 2022
@Gankra
Copy link
Contributor Author

Gankra commented Mar 22, 2022

This is based on the "distinguish pointers and addresses" proposal in my recent article:

https://gankra.github.io/blah/fix-rust-pointers/

@Gankra
Copy link
Contributor Author

Gankra commented Mar 22, 2022

Currently I am struggling with how to properly allow these casts within the ptr module to polyfill this functionality. What I tried doesn't seem to do the job, so build non-bootstrap-core fails out (even though the lint is supposed to be "only" a warning? I guess it makes sense that std would have deny(warnings)...)

@rust-log-analyzer

This comment has been minimized.

library/core/src/ptr/mod.rs Outdated Show resolved Hide resolved
@bjorn3
Copy link
Member

bjorn3 commented Mar 22, 2022

Would #![cfg_attr(not(bootstrap), allow(fuzzy_provenance_cast))] work?

@Gankra
Copy link
Contributor Author

Gankra commented Mar 22, 2022

Ah, ok I just typoed the name of the lint and was too tired to notice, making progress again...

@crazyboycjr
Copy link

I would like to advocate this idea of having explicit pointer to address cast (ptr.addr() -> usize and ptr.with_addr(addr) -> ptr). Just come back from writing myself this tricky mistake sth == mem::size_of::<Self> as usize. No one would ever want to convert a function pointer to usize in this case... A normal person would hardly make this kind of mistake, but I made it this time because I got feedback from the language server and fixed it without thinking too much.

I feel it would be great to be explicit when we really want to do this pointer to int casting.

@Gankra
Copy link
Contributor Author

Gankra commented Mar 22, 2022

Yeah i will say that there's a lot of really hairy code where I see "as usize" and I'm like "wait is this just integer stuff or are they doing cute pointer stuff" that is making this conversion feel a lot more compelling.

That said as the AVR stuff in core::ptr notes, there are actual representational differences between function pointers and data pointers on some platforms and that has....... implications.

Other thing of note: I am WONTFIXing all the hackery in panic_unwind. Not because I think it's impossible, but just because it's brain melty to think about pointer semantics for a part of the runtime that gets to do Magic, and it's just not necessary to figure out for an MVP that miri can mess with. Definitely an interesting case study though.

@bstrie
Copy link
Contributor

bstrie commented Mar 22, 2022

sth == mem::size_of::<Self> as usize

@crazyboycjr , as an aside, note that there are variants of this that are even more hilarious: #81686

This patch series examines the question: how bad would it be if we adopted
an extremely strict pointer provenance model that completely banished all
int<->ptr casts.

The key insight to making this approach even *vaguely* pallatable is the

ptr.with_addr(addr) -> ptr

function, which takes a pointer and an address and creates a new pointer
with that address and the provenance of the input pointer. In this way
the "chain of custody" is completely and dynamically restored, making the
model suitable even for dynamic checkers like CHERI and Miri.

This is not a formal model, but lots of the docs discussing the model
have been updated to try to the *concept* of this design in the hopes
that it can be iterated on.

Many new methods have been added to ptr to attempt to fill in semantic gaps
that this introduces, or to just get the ball rolling on "hey this is a
problem that needs to be solved, here's a bad solution as a starting point".
@Gankra
Copy link
Contributor Author

Gankra commented Mar 22, 2022

status: completes stage 1 with no warnings (but some WONTFIXes)

getting through stage2 involves fixing all the warnings in rustc itself, which, is unfortunately more work than I thought given it loves pointer tagging. Exhausted, done for the day.

@rust-log-analyzer

This comment has been minimized.

@Gankra
Copy link
Contributor Author

Gankra commented Mar 22, 2022

Oh also I'm working on windows so sys is almost certainly still fucked on all other platforms.

Current rustc TODO
error: strict provenance disallows casting pointer `*const rustc_ast::Expr` to integer `usize`
   --> compiler\rustc_parse\src\parser\expr.rs:806:27
    |
806 |         let addr_before = &*cast_expr as *const _ as usize;
    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `-D fuzzy-provenance-casts` implied by `-D warnings`
    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
    = note: for more information, see issue #9999999 <https://github.com/rust-lang/rust/issues/9999999>
    = help: use `.addr()` to obtain the address of a pointer

error: strict provenance disallows casting pointer `*const rustc_ast::Expr` to integer `usize`
   --> compiler\rustc_parse\src\parser\expr.rs:809:38
    |
809 |         let changed = addr_before != &*with_postfix as *const _ as usize;
    |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
    = note: for more information, see issue #9999999 <https://github.com/rust-lang/rust/issues/9999999>
    = help: use `.addr()` to obtain the address of a pointer

   Compiling rustc_middle v0.0.0 (C:\Users\ninte\dev\rust-hell\rust\compiler\rustc_middle)
   Compiling rustc_ast_lowering v0.0.0 (C:\Users\ninte\dev\rust-hell\rust\compiler\rustc_ast_lowering)
error: could not compile `rustc_parse` due to 2 previous errors
warning: build failed, waiting for other jobs to finish...
error: strict provenance disallows casting pointer `*const RegionKind` to integer `usize`
  --> compiler\rustc_middle\src\ty\subst.rs:83:30
   |
83 |                 (REGION_TAG, lt.0.0 as *const ty::RegionKind as usize)
   |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `-D fuzzy-provenance-casts` implied by `-D warnings`
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #9999999 <https://github.com/rust-lang/rust/issues/9999999>
   = help: use `.addr()` to obtain the address of a pointer

error: strict provenance disallows casting pointer `*const TyS<'tcx>` to integer `usize`
  --> compiler\rustc_middle\src\ty\subst.rs:88:28
   |
88 |                 (TYPE_TAG, ty.0.0 as *const ty::TyS<'tcx> as usize)
   |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #9999999 <https://github.com/rust-lang/rust/issues/9999999>
   = help: use `.addr()` to obtain the address of a pointer

error: strict provenance disallows casting pointer `*const ConstS<'tcx>` to integer `usize`
  --> compiler\rustc_middle\src\ty\subst.rs:93:29
   |
93 |                 (CONST_TAG, ct.0.0 as *const ty::ConstS<'tcx> as usize)
   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #9999999 <https://github.com/rust-lang/rust/issues/9999999>
   = help: use `.addr()` to obtain the address of a pointer

error: strict provenance disallows casting integer `usize` to pointer `*const RegionKind`
   --> compiler\rustc_middle\src\ty\subst.rs:154:23
    |
154 |                     &*((ptr & !TAG_MASK) as *const ty::RegionKind),
    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
    = note: for more information, see issue #9999999 <https://github.com/rust-lang/rust/issues/9999999>
    = help: use `.with_addr(...)` to adjust a valid pointer in the same allocation, to this address

error: strict provenance disallows casting integer `usize` to pointer `*const TyS<'tcx>`
   --> compiler\rustc_middle\src\ty\subst.rs:157:23
    |
157 |                     &*((ptr & !TAG_MASK) as *const ty::TyS<'tcx>),
    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
    = note: for more information, see issue #9999999 <https://github.com/rust-lang/rust/issues/9999999>
    = help: use `.with_addr(...)` to adjust a valid pointer in the same allocation, to this address

error: strict provenance disallows casting integer `usize` to pointer `*const ConstS<'tcx>`
   --> compiler\rustc_middle\src\ty\subst.rs:160:23
    |
160 |                     &*((ptr & !TAG_MASK) as *const ty::ConstS<'tcx>),
    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
    = note: for more information, see issue #9999999 <https://github.com/rust-lang/rust/issues/9999999>
    = help: use `.with_addr(...)` to adjust a valid pointer in the same allocation, to this address

error: strict provenance disallows casting pointer `*const adt::AdtDefData` to integer `usize`
   --> compiler\rustc_middle\src\ty\adt.rs:144:24
    |
144 |             let addr = self as *const AdtDefData as usize;
    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
    = note: for more information, see issue #9999999 <https://github.com/rust-lang/rust/issues/9999999>
    = help: use `.addr()` to obtain the address of a pointer

error: strict provenance disallows casting pointer `*const ImplicitCtxt<'_, 'tcx>` to integer `usize`
    --> compiler\rustc_middle\src\ty\context.rs:1836:17
     |
1836 |         set_tlv(context as *const _ as usize, || f(&context))
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
     = note: for more information, see issue #9999999 <https://github.com/rust-lang/rust/issues/9999999>
     = help: use `.addr()` to obtain the address of a pointer

error: strict provenance disallows casting integer `usize` to pointer `*const ImplicitCtxt<'_, '_>`
    --> compiler\rustc_middle\src\ty\context.rs:1853:31
     |
1853 |             unsafe { f(Some(&*(context as *const ImplicitCtxt<'_, '_>))) }
     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
     = note: for more information, see issue #9999999 <https://github.com/rust-lang/rust/issues/9999999>
     = help: use `.with_addr(...)` to adjust a valid pointer in the same allocation, to this address

error: strict provenance disallows casting pointer `*const T` to integer `usize`
  --> compiler\rustc_middle\src\ty\impls_ty.rs:26:24
   |
26 |             let key = (self.as_ptr() as usize, self.len(), hcx.hashing_controls());
   |                        ^^^^^^^^^^^^^^^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #9999999 <https://github.com/rust-lang/rust/issues/9999999>
   = help: use `.addr()` to obtain the address of a pointer

error: strict provenance disallows casting pointer `*const list::List<T>` to integer `usize`
   --> compiler\rustc_middle\src\ty\list.rs:205:9
    |
205 |         self as *const List<T> as usize
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
    = note: for more information, see issue #9999999 <https://github.com/rust-lang/rust/issues/9999999>
    = help: use `.addr()` to obtain the address of a pointer

error: strict provenance disallows casting integer `usize` to pointer `*const list::List<T>`
   --> compiler\rustc_middle\src\ty\list.rs:210:11
    |
210 |         &*(ptr as *const List<T>)
    |           ^^^^^^^^^^^^^^^^^^^^^^^
    |
    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
    = note: for more information, see issue #9999999 <https://github.com/rust-lang/rust/issues/9999999>
    = help: use `.with_addr(...)` to adjust a valid pointer in the same allocation, to this address

where
T: Sized,
{
self as usize
unsafe { core::mem::transmute(self) }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Uuh I don't like this part.^^ See rust-lang/unsafe-code-guidelines#286.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You may notice I deprecated its twin -- in this form it is purely for "I really need intptr_t just as a way to talk about a pointer's bytes in an irreversible way" purposes.

But yes I would just deprecate it, imo.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also IMO it should be transmute(self.addr()) to avoid the sketchy ptr-to-int transmute.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have almost no experience with rust, so I may be mis-parsing this. However, it seems to me that this does indeed need to be self and not self.addr() if you want the raw pointer representation. For CHERI self.addr() will not give the all the pointer bits, only the 32/64 address bits without the metadata.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh I see.
Hm but this produces u8 with provenance on them which I don't think we want, either.^^

/// let val = *my_untagged_ptr;
/// ```
#[unstable(feature = "strict_provenance", issue = "99999999")]
pub fn with_addr(self, addr: usize) -> Self
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FWIW another kind of API that has been proposed is

pub fn map_addr(self, impl FnOnce(usize) -> usize) -> Self

so that might also be fun to experiment with.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That seems to be both more restrictive and more verbose?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm no ok it's less verbose in the ideal situation.

Copy link
Member

@RalfJung RalfJung Mar 22, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ptr.map_addr(|a| a & ~0x1) is a neat way to express "reset last bit of this pointer" in a single expression, IMO (and works well even if ptr is a slightly larger expression).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

having both might be reasonable

@@ -20,12 +23,8 @@
//! be *dereferenceable*: the memory range of the given size starting at the pointer must all be
//! within the bounds of a single allocated object. Note that in Rust,
//! every (stack-allocated) variable is considered a separate allocated object.
//! * Even for operations of [size zero][zst], the pointer must not be pointing to deallocated
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FWIW this was meant to be a paragraph on ZST, not on deallocation, so the rewording kind of defeats its purpose.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reason I hoisted it out is that I can only rationalize this rule under strict provenance, where you can distinguish "reference to a ZST subfield" (can be invalidated by a deallocation) and "a magical forged allocation" (can't be invalidated by a deallocation).

library/core/src/ptr/mod.rs Outdated Show resolved Hide resolved
Copy link
Member

@RalfJung RalfJung left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wow, that is a daring experiment. :D I am fully onboard! Just left a few comments.

//! *derived* from the One True Handle through operations like `offset` or borrowing.
//!
//! (Unclear detail: taking a subslice is proposed to create a slice that is no longer allowed
//! to access the full range of memory -- is this part of provenance or another system?)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I view this as part of provenance. With Stacked Borrows, provenance is more refined than just an allocation ID; that's what the "tags" are for. (And technically we probably would not even need allocation IDs any more; Stacked Borrows tags could be our only provenance.)

#[must_use]
#[rustc_const_stable(feature = "strict_provenance", since = "1.61.0")]
#[unstable(feature = "strict_provenance", issue = "99999999")]
pub const fn zst_exists<T>(addr: usize) -> *mut T
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this say that NULL is forbidden?

read/write at NULL is still UB, even with a ZST. NULL is the one address that the compiler knows is not part of any allocation. (At least that's how I thought about it, and it's what Miri checks.)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah in spite of how much text I wrote I truly just slapped some of these in here. I basically wrote the "novel" docs and left out the boring parts like "all normal rules for things apply" which obviously should be filled out and made explicit, just, hacking.

Still working on this, but it seems to largely be a lot of `as usize` -> `.addr()`
Why does rustc do oh so many crimes? Oh so many...
@jrtc27
Copy link

jrtc27 commented Mar 22, 2022

So this basically turns usize from being both size_t and uintptr_t to being just size_t. That leaves the question of whether Rust needs a uintptr_t equivalent; avoiding the type is generally a good thing since it's really a union in disguise and doesn't give you much help when it comes to type-checking, but I could imagine it still being a thing people want in unsafe Rust, as well as FFI things (otherwise what type do you use for a C uintptr_t?).

@rust-log-analyzer

This comment has been minimized.

@Gankra
Copy link
Contributor Author

Gankra commented Mar 22, 2022

Yeah uintptr_t is a bit of an open question. I think on principle you don't want it but that something will force our hand eventually. This PR avoids adding it for the sake of "does that work at all"?

@Gankra
Copy link
Contributor Author

Gankra commented Mar 22, 2022

Latest push manages to build stage 2 (basically just marked a dozen files in rustc as TODO and supressed the warnings, because rustc's code doesn't actually execute in a binary it compiles.

@rust-log-analyzer

This comment has been minimized.

@Gankra
Copy link
Contributor Author

Gankra commented Mar 23, 2022

hey i wonder if i'm still in charge here

@Gankra
Copy link
Contributor Author

Gankra commented Mar 23, 2022

@bors try

@bors
Copy link
Contributor

bors commented Mar 23, 2022

@Gankra: 🔑 Insufficient privileges: not in try users

@Gankra
Copy link
Contributor Author

Gankra commented Mar 23, 2022

fair bors, fair.

@RalfJung
Copy link
Member

I mean we can fix that.^^
@bors delegate+

@bors
Copy link
Contributor

bors commented Mar 23, 2022

✌️ @Gankra can now approve this pull request

@clarfonthey
Copy link
Contributor

Small nit: instead of issue = "99999999", issue = "none" works now. But it wouldn't hurt to have a tracking issue for the experiment, even if it just links to the blog post you wrote. ;)

@Gankra
Copy link
Contributor Author

Gankra commented Mar 23, 2022

yeah the 9999999 was entirely on the assumption that this wasn't ever gonna land and i was just gonna use bors to build some artifacts but I'm down to actually land a subset

@Gankra
Copy link
Contributor Author

Gankra commented Mar 23, 2022

@bors try

@bors
Copy link
Contributor

bors commented Mar 23, 2022

⌛ Trying commit 8643aa4 with merge 776e3314cbfb4507e62fbdc866de866823746bb9...

@rust-log-analyzer
Copy link
Collaborator

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

Click to see the possible cause of the failure (guessed by this bot)
.................................................................................................... 2700/3812
.................................................................................................... 2800/3812
.................................................................................................... 2900/3812
...................................................................................................i 3000/3812
ii......................................F..................................F...........F............ 3100/3812
.........F.......................................................................................... 3200/3812
.................................................................................................... 3400/3812
.....................i...............................................i..................i........... 3500/3812
............i.......................i.......................i.......................i............... 3600/3812
.....................i.......................i.......................i.......................i...... 3700/3812
---
---- src/intrinsics.rs - intrinsics::transmute (line 984) stdout ----
error[E0658]: use of unstable library feature 'strict_provenance'
  --> src/intrinsics.rs:991:40
   |
10 | let ptr_num_cast = (ptr as *const i32).addr();
   |
   = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
   = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
   = help: add `#![feature(strict_provenance)]` to the crate attributes to enable
error: aborting due to previous error

For more information about this error, try `rustc --explain E0658`.
Couldn't compile the test.
Couldn't compile the test.
---- src/ptr/const_ptr.rs - ptr::const_ptr::*constT::offset_from (line 535) stdout ----
error[E0658]: use of unstable library feature 'strict_provenance'
 --> src/ptr/const_ptr.rs:538:18
  |
6 | let diff = (ptr2.addr() as isize).wrapping_sub(ptr1.addr() as isize);
  |
  = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
  = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
  = help: add `#![feature(strict_provenance)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'strict_provenance'
 --> src/ptr/const_ptr.rs:538:53
  |
  |
6 | let diff = (ptr2.addr() as isize).wrapping_sub(ptr1.addr() as isize);
  |
  = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
  = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
  = help: add `#![feature(strict_provenance)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'strict_provenance'
 --> src/ptr/const_ptr.rs:541:17
  |
  |
9 | assert_eq!(ptr2.addr(), ptr2_other.addr());
  |
  = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
  = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
  = help: add `#![feature(strict_provenance)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'strict_provenance'
 --> src/ptr/const_ptr.rs:541:36
  |
  |
9 | assert_eq!(ptr2.addr(), ptr2_other.addr());
  |
  = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
  = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
  = help: add `#![feature(strict_provenance)]` to the crate attributes to enable
error: aborting due to 4 previous errors

For more information about this error, try `rustc --explain E0658`.
Couldn't compile the test.
Couldn't compile the test.
---- src/ptr/mod.rs - ptr::zst_exists (line 302) stdout ----
error: unused import: `mem`
  |
  |
4 | use core::{ptr, mem};
  |
note: the lint level is defined here
 --> src/ptr/mod.rs:300:9
  |
  |
1 | #![deny(warnings)]
  |         ^^^^^^^^
  = note: `#[deny(unused_imports)]` implied by `#[deny(warnings)]`

error[E0658]: use of unstable library feature 'strict_provenance'
 --> src/ptr/mod.rs:306:19
  |
7 | let my_good_ptr = ptr::zst_exists::<()>(0xc001_add7);
  |
  = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
  = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
  = help: add `#![feature(strict_provenance)]` to the crate attributes to enable
error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0658`.
Couldn't compile the test.
Couldn't compile the test.
---- src/ptr/mut_ptr.rs - ptr::mut_ptr::*mutT::offset_from (line 713) stdout ----
error[E0658]: use of unstable library feature 'strict_provenance'
 --> src/ptr/mut_ptr.rs:716:18
  |
6 | let diff = (ptr2.addr() as isize).wrapping_sub(ptr1.addr() as isize);
  |
  = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
  = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
  = help: add `#![feature(strict_provenance)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'strict_provenance'
 --> src/ptr/mut_ptr.rs:716:53
  |
  |
6 | let diff = (ptr2.addr() as isize).wrapping_sub(ptr1.addr() as isize);
  |
  = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
  = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
  = help: add `#![feature(strict_provenance)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'strict_provenance'
 --> src/ptr/mut_ptr.rs:719:17
  |
  |
9 | assert_eq!(ptr2.addr(), ptr2_other.addr());
  |
  = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
  = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
  = help: add `#![feature(strict_provenance)]` to the crate attributes to enable
error[E0658]: use of unstable library feature 'strict_provenance'
 --> src/ptr/mut_ptr.rs:719:36
  |
  |
9 | assert_eq!(ptr2.addr(), ptr2_other.addr());
  |
  = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
  = note: see issue #99999999 <https://github.com/rust-lang/rust/issues/99999999> for more information
  = help: add `#![feature(strict_provenance)]` to the crate attributes to enable
error: aborting due to 4 previous errors

For more information about this error, try `rustc --explain E0658`.
Couldn't compile the test.
Couldn't compile the test.
---- src/ptr/non_null.rs - ptr::non_null::NonNull<[T]>::as_mut_ptr (line 487) stdout ----
error[E0308]: mismatched types
 --> src/ptr/non_null.rs:492:1
  |
8 | assert_eq!(slice.as_mut_ptr(), NonNull::<i8>::dangling());
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected *-ptr, found struct `NonNull`
  |
  = note: expected raw pointer `*mut i8`
                  found struct `NonNull<i8>`
  = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
error: aborting due to previous error

For more information about this error, try `rustc --explain E0308`.
Couldn't compile the test.

@bors
Copy link
Contributor

bors commented Mar 23, 2022

💔 Test failed - checks-actions

@bors bors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 23, 2022
@rust-log-analyzer
Copy link
Collaborator

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

Click to see the possible cause of the failure (guessed by this bot)
7 benchmarks remaining
Preparing clap-rs
[2022-03-23T03:50:21Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=None, patch=None
[2022-03-23T03:50:21Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=None, patch=None
[2022-03-23T03:50:21Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpnvOd6p#clap:2.29.0" "--" "--skip-this-rustc"
[2022-03-23T03:50:21Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmprEyUhQ#clap:2.29.0" "--release" "--" "--skip-this-rustc"
[2022-03-23T03:50:23Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T03:50:23Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=Some(Full), patch=None
[2022-03-23T03:50:23Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=Some(Full), patch=None
[2022-03-23T03:50:23Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpIfeVop#clap:2.29.0" "--" "--wrap-rustc-with" "eprintln"
[2022-03-23T03:50:31Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T03:50:31Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=Some(Full), patch=None
[2022-03-23T03:50:31Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmplPvxz7#clap:2.29.0" "--release" "--" "--wrap-rustc-with" "eprintln"
6 benchmarks remaining
---
[2022-03-23T03:50:45Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpzvcT5R#deeply-nested-async:0.1.0" "--" "--wrap-rustc-with" "eprintln"
Running deeply-nested-async: Opt + [Full]
[2022-03-23T03:50:46Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T03:50:46Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=Some(Full), patch=None
[2022-03-23T03:50:46Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpSRuRSf#deeply-nested-async:0.1.0" "--release" "--" "--wrap-rustc-with" "eprintln"
Preparing hyper-2
[2022-03-23T03:50:46Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=None, patch=None
[2022-03-23T03:50:46Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=None, patch=None
[2022-03-23T03:50:46Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpiuJA8i#hyper:0.13.0-alpha.4" "--release" "--" "--skip-this-rustc"
---
[2022-03-23T03:51:14Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpMLJC6B#hyper:0.13.0-alpha.4" "--" "--wrap-rustc-with" "eprintln"
Running hyper-2: Opt + [Full]
[2022-03-23T03:51:17Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T03:51:17Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=Some(Full), patch=None
[2022-03-23T03:51:17Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpUUQoc2#hyper:0.13.0-alpha.4" "--release" "--" "--wrap-rustc-with" "eprintln"
Preparing regex
[2022-03-23T03:51:24Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=None, patch=None
[2022-03-23T03:51:24Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=None, patch=None
[2022-03-23T03:51:24Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmp2g7i66#regex:0.1.80" "--release" "--" "--skip-this-rustc"
---
[2022-03-23T03:52:16Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmp4CJ9hm#ripgrep:0.8.1" "--" "--wrap-rustc-with" "eprintln"
Running ripgrep: Opt + [Full]
[2022-03-23T03:52:20Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T03:52:21Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=Some(Full), patch=None
[2022-03-23T03:52:21Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpBrVoZe#ripgrep:0.8.1" "--release" "--" "--wrap-rustc-with" "eprintln"
Preparing serde
[2022-03-23T03:52:41Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=None, patch=None
[2022-03-23T03:52:41Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=None, patch=None
[2022-03-23T03:52:41Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=None, patch=None
[2022-03-23T03:52:41Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "serde/Cargo.toml" "-p" "file:///tmp/.tmplPCCQF/serde#1.0.37" "--release" "--" "--skip-this-rustc"
[2022-03-23T03:52:41Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "serde/Cargo.toml" "-p" "file:///tmp/.tmpdwdcKS/serde#1.0.37" "--" "--skip-this-rustc"
[2022-03-23T03:52:42Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T03:52:42Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=Some(Full), patch=None
[2022-03-23T03:52:42Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "serde/Cargo.toml" "-p" "file:///tmp/.tmpf2bIIy/serde#1.0.37" "--" "--wrap-rustc-with" "eprintln"
Running serde: Opt + [Full]
Running serde: Opt + [Full]
[2022-03-23T03:52:46Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T03:52:46Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=Some(Full), patch=None
[2022-03-23T03:52:46Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "serde/Cargo.toml" "-p" "file:///tmp/.tmpAHBPGd/serde#1.0.37" "--release" "--" "--wrap-rustc-with" "eprintln"
Preparing syn
[2022-03-23T03:52:50Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=None, patch=None
[2022-03-23T03:52:50Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=None, patch=None
[2022-03-23T03:52:50Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpGS0jj5#syn:0.11.11" "--" "--skip-this-rustc"
[2022-03-23T03:52:50Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpGS0jj5#syn:0.11.11" "--" "--skip-this-rustc"
[2022-03-23T03:52:50Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpHcVlL1#syn:0.11.11" "--release" "--" "--skip-this-rustc"
Running syn: Debug + [Full]
[2022-03-23T03:52:54Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T03:52:54Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=Some(Full), patch=None
[2022-03-23T03:52:54Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpWUbCAc#syn:0.11.11" "--" "--wrap-rustc-with" "eprintln"
[2022-03-23T03:52:56Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T03:52:56Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=Some(Full), patch=None
[2022-03-23T03:52:56Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=Some(Full), patch=None
[2022-03-23T03:52:56Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpRMlMde#syn:0.11.11" "--release" "--" "--wrap-rustc-with" "eprintln"
+ /rustroot/bin/llvm-profdata merge -o /tmp/llvm-pgo.profdata ./build/x86_64-unknown-linux-gnu/llvm/build/profiles
+ rm -r ./build/x86_64-unknown-linux-gnu/llvm ./build/x86_64-unknown-linux-gnu/lld
+ python3 ../x.py build --target=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --stage 2 library/std --rust-profile-generate=/tmp/rustc-pgo
warning: sqlite3 not available in python, skipping build directory lock
---
[2022-03-23T04:08:05Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T04:08:05Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Check, run_kind=Some(Full), patch=None
[2022-03-23T04:08:05Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmp1JMAnr#cargo:0.29.0" "--profile" "check" "--lib" "--" "--wrap-rustc-with" "eprintln"
[2022-03-23T04:08:20Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Check, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:08:20Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmp1JMAnr#cargo:0.29.0" "--profile" "check" "--lib" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmp1JMAnr/incremental-state"
[2022-03-23T04:08:37Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Check, run_kind=Some(IncrUnchanged), patch=None
[2022-03-23T04:08:37Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmp1JMAnr#cargo:0.29.0" "--profile" "check" "--lib" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmp1JMAnr/incremental-state"
[2022-03-23T04:08:40Z DEBUG collector::execute] applying println to "/tmp/.tmp1JMAnr"
[2022-03-23T04:08:40Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Check, run_kind=Some(IncrPatched), patch=Some(Patch { index: 0, name: PatchName("println"), path: "0-println.patch" })
[2022-03-23T04:08:40Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Check, run_kind=Some(IncrPatched), patch=Some(Patch { index: 0, name: PatchName("println"), path: "0-println.patch" })
[2022-03-23T04:08:40Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmp1JMAnr#cargo:0.29.0" "--profile" "check" "--lib" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmp1JMAnr/incremental-state"
[2022-03-23T04:08:49Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T04:08:49Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=Some(Full), patch=None
[2022-03-23T04:08:49Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmppG83Ch#cargo:0.29.0" "--lib" "--" "--wrap-rustc-with" "eprintln"
[2022-03-23T04:09:19Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Debug, run_kind=Some(IncrFull), patch=None
---
[2022-03-23T04:10:17Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T04:10:17Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=Some(Full), patch=None
[2022-03-23T04:10:17Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpgcPecY#cargo:0.29.0" "--release" "--lib" "--" "--wrap-rustc-with" "eprintln"
[2022-03-23T04:10:59Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:10:59Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpgcPecY#cargo:0.29.0" "--release" "--lib" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpgcPecY/incremental-state"
[2022-03-23T04:11:40Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrUnchanged), patch=None
[2022-03-23T04:11:40Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpgcPecY#cargo:0.29.0" "--release" "--lib" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpgcPecY/incremental-state"
[2022-03-23T04:11:47Z DEBUG collector::execute] applying println to "/tmp/.tmpgcPecY"
[2022-03-23T04:11:47Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrPatched), patch=Some(Patch { index: 0, name: PatchName("println"), path: "0-println.patch" })
[2022-03-23T04:11:47Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrPatched), patch=Some(Patch { index: 0, name: PatchName("println"), path: "0-println.patch" })
[2022-03-23T04:11:47Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpgcPecY#cargo:0.29.0" "--release" "--lib" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpgcPecY/incremental-state"
Preparing ctfe-stress-4
[2022-03-23T04:12:07Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Check, run_kind=None, patch=None
[2022-03-23T04:12:07Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=None, patch=None
[2022-03-23T04:12:07Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=None, patch=None
---
[2022-03-23T04:12:08Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T04:12:08Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Check, run_kind=Some(Full), patch=None
[2022-03-23T04:12:08Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpGjtU4T#ctfe-stress-4:0.1.0" "--profile" "check" "--" "--wrap-rustc-with" "eprintln"
[2022-03-23T04:12:34Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Check, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:12:34Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpGjtU4T#ctfe-stress-4:0.1.0" "--profile" "check" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpGjtU4T/incremental-state"
[2022-03-23T04:13:03Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Check, run_kind=Some(IncrUnchanged), patch=None
[2022-03-23T04:13:03Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpGjtU4T#ctfe-stress-4:0.1.0" "--profile" "check" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpGjtU4T/incremental-state"
[2022-03-23T04:13:04Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T04:13:04Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=Some(Full), patch=None
[2022-03-23T04:13:04Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpnuEXTD#ctfe-stress-4:0.1.0" "--" "--wrap-rustc-with" "eprintln"
[2022-03-23T04:13:30Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Debug, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:13:30Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Debug, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:13:30Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpnuEXTD#ctfe-stress-4:0.1.0" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpnuEXTD/incremental-state"
[2022-03-23T04:14:00Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Debug, run_kind=Some(IncrUnchanged), patch=None
[2022-03-23T04:14:00Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpnuEXTD#ctfe-stress-4:0.1.0" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpnuEXTD/incremental-state"
[2022-03-23T04:14:01Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T04:14:01Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=Some(Full), patch=None
[2022-03-23T04:14:01Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpa5vfQa#ctfe-stress-4:0.1.0" "--release" "--" "--wrap-rustc-with" "eprintln"
[2022-03-23T04:14:26Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:14:26Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:14:26Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpa5vfQa#ctfe-stress-4:0.1.0" "--release" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpa5vfQa/incremental-state"
[2022-03-23T04:14:54Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrUnchanged), patch=None
[2022-03-23T04:14:54Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpa5vfQa#ctfe-stress-4:0.1.0" "--release" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpa5vfQa/incremental-state"
Preparing externs
[2022-03-23T04:14:54Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Check, run_kind=None, patch=None
[2022-03-23T04:14:54Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=None, patch=None
[2022-03-23T04:14:54Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=None, patch=None
---
[2022-03-23T04:14:58Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T04:14:58Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=Some(Full), patch=None
[2022-03-23T04:14:58Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpThxnyO#externs:0.1.0" "--" "--wrap-rustc-with" "eprintln"
[2022-03-23T04:14:58Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Debug, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:14:58Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpThxnyO#externs:0.1.0" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpThxnyO/incremental-state"
[2022-03-23T04:15:00Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Debug, run_kind=Some(IncrUnchanged), patch=None
[2022-03-23T04:15:00Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpThxnyO#externs:0.1.0" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpThxnyO/incremental-state"
[2022-03-23T04:15:01Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T04:15:01Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=Some(Full), patch=None
[2022-03-23T04:15:01Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpiXdH7Y#externs:0.1.0" "--release" "--" "--wrap-rustc-with" "eprintln"
[2022-03-23T04:15:02Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:15:02Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:15:02Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpiXdH7Y#externs:0.1.0" "--release" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpiXdH7Y/incremental-state"
[2022-03-23T04:15:03Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrUnchanged), patch=None
[2022-03-23T04:15:03Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpiXdH7Y#externs:0.1.0" "--release" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpiXdH7Y/incremental-state"
Preparing inflate
[2022-03-23T04:15:04Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Check, run_kind=None, patch=None
[2022-03-23T04:15:04Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=None, patch=None
[2022-03-23T04:15:04Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=None, patch=None
---
[2022-03-23T04:15:05Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T04:15:05Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Check, run_kind=Some(Full), patch=None
[2022-03-23T04:15:05Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpAiF8aP#inflate:0.1.0" "--profile" "check" "--" "--wrap-rustc-with" "eprintln"
[2022-03-23T04:15:08Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Check, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:15:08Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpAiF8aP#inflate:0.1.0" "--profile" "check" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpAiF8aP/incremental-state"
[2022-03-23T04:15:11Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Check, run_kind=Some(IncrUnchanged), patch=None
[2022-03-23T04:15:11Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpAiF8aP#inflate:0.1.0" "--profile" "check" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpAiF8aP/incremental-state"
[2022-03-23T04:15:11Z DEBUG collector::execute] applying println to "/tmp/.tmpAiF8aP"
[2022-03-23T04:15:11Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Check, run_kind=Some(IncrPatched), patch=Some(Patch { index: 0, name: PatchName("println"), path: "0-println.patch" })
[2022-03-23T04:15:11Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Check, run_kind=Some(IncrPatched), patch=Some(Patch { index: 0, name: PatchName("println"), path: "0-println.patch" })
[2022-03-23T04:15:11Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpAiF8aP#inflate:0.1.0" "--profile" "check" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpAiF8aP/incremental-state"
[2022-03-23T04:15:14Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T04:15:14Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=Some(Full), patch=None
[2022-03-23T04:15:15Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpaHKyzg#inflate:0.1.0" "--" "--wrap-rustc-with" "eprintln"
[2022-03-23T04:15:19Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Debug, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:15:19Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Debug, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:15:19Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpaHKyzg#inflate:0.1.0" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpaHKyzg/incremental-state"
[2022-03-23T04:15:23Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Debug, run_kind=Some(IncrUnchanged), patch=None
[2022-03-23T04:15:23Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpaHKyzg#inflate:0.1.0" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpaHKyzg/incremental-state"
[2022-03-23T04:15:23Z DEBUG collector::execute] applying println to "/tmp/.tmpaHKyzg"
[2022-03-23T04:15:23Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Debug, run_kind=Some(IncrPatched), patch=Some(Patch { index: 0, name: PatchName("println"), path: "0-println.patch" })
[2022-03-23T04:15:23Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Debug, run_kind=Some(IncrPatched), patch=Some(Patch { index: 0, name: PatchName("println"), path: "0-println.patch" })
[2022-03-23T04:15:23Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpaHKyzg#inflate:0.1.0" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpaHKyzg/incremental-state"
[2022-03-23T04:15:28Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T04:15:28Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=Some(Full), patch=None
[2022-03-23T04:15:28Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpzByfaz#inflate:0.1.0" "--release" "--" "--wrap-rustc-with" "eprintln"
[2022-03-23T04:15:34Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:15:34Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:15:34Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpzByfaz#inflate:0.1.0" "--release" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpzByfaz/incremental-state"
[2022-03-23T04:15:41Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrUnchanged), patch=None
[2022-03-23T04:15:41Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpzByfaz#inflate:0.1.0" "--release" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpzByfaz/incremental-state"
[2022-03-23T04:15:41Z DEBUG collector::execute] applying println to "/tmp/.tmpzByfaz"
[2022-03-23T04:15:41Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrPatched), patch=Some(Patch { index: 0, name: PatchName("println"), path: "0-println.patch" })
[2022-03-23T04:15:41Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrPatched), patch=Some(Patch { index: 0, name: PatchName("println"), path: "0-println.patch" })
[2022-03-23T04:15:41Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpzByfaz#inflate:0.1.0" "--release" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpzByfaz/incremental-state"
Preparing match-stress-enum
[2022-03-23T04:15:48Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=None, patch=None
[2022-03-23T04:15:48Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Check, run_kind=None, patch=None
[2022-03-23T04:15:48Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=None, patch=None
---
[2022-03-23T04:15:53Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T04:15:53Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=Some(Full), patch=None
[2022-03-23T04:15:53Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpNVGCqU#match-stress-enum:0.1.0" "--" "--wrap-rustc-with" "eprintln"
[2022-03-23T04:15:55Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Debug, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:15:55Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpNVGCqU#match-stress-enum:0.1.0" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpNVGCqU/incremental-state"
[2022-03-23T04:15:58Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Debug, run_kind=Some(IncrUnchanged), patch=None
[2022-03-23T04:15:58Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpNVGCqU#match-stress-enum:0.1.0" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpNVGCqU/incremental-state"
[2022-03-23T04:15:59Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T04:15:59Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=Some(Full), patch=None
[2022-03-23T04:15:59Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpRArH8b#match-stress-enum:0.1.0" "--release" "--" "--wrap-rustc-with" "eprintln"
[2022-03-23T04:16:01Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:16:01Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:16:01Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpRArH8b#match-stress-enum:0.1.0" "--release" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpRArH8b/incremental-state"
[2022-03-23T04:16:03Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrUnchanged), patch=None
[2022-03-23T04:16:03Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpRArH8b#match-stress-enum:0.1.0" "--release" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpRArH8b/incremental-state"
Preparing token-stream-stress
[2022-03-23T04:16:04Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=None, patch=None
[2022-03-23T04:16:04Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=None, patch=None
[2022-03-23T04:16:04Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Check, run_kind=None, patch=None
---
[2022-03-23T04:16:05Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T04:16:05Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Check, run_kind=Some(Full), patch=None
[2022-03-23T04:16:05Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpNN9tLI#token-stream-stress:0.0.0" "--profile" "check" "--bin" "token-stream-stress" "--" "--wrap-rustc-with" "eprintln"
[2022-03-23T04:16:06Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Check, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:16:06Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpNN9tLI#token-stream-stress:0.0.0" "--profile" "check" "--bin" "token-stream-stress" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpNN9tLI/incremental-state"
[2022-03-23T04:16:06Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Check, run_kind=Some(IncrUnchanged), patch=None
[2022-03-23T04:16:06Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpNN9tLI#token-stream-stress:0.0.0" "--profile" "check" "--bin" "token-stream-stress" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpNN9tLI/incremental-state"
[2022-03-23T04:16:06Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T04:16:06Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Debug, run_kind=Some(Full), patch=None
[2022-03-23T04:16:06Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmp04rI3N#token-stream-stress:0.0.0" "--bin" "token-stream-stress" "--" "--wrap-rustc-with" "eprintln"
[2022-03-23T04:16:07Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Debug, run_kind=Some(IncrFull), patch=None
---
[2022-03-23T04:16:07Z DEBUG collector::execute] Benchmark iteration 1/1
[2022-03-23T04:16:07Z INFO  collector::execute] run_rustc with incremental=false, build_kind=Opt, run_kind=Some(Full), patch=None
[2022-03-23T04:16:07Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpHwvtgZ#token-stream-stress:0.0.0" "--release" "--bin" "token-stream-stress" "--" "--wrap-rustc-with" "eprintln"
[2022-03-23T04:16:08Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrFull), patch=None
[2022-03-23T04:16:08Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpHwvtgZ#token-stream-stress:0.0.0" "--release" "--bin" "token-stream-stress" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpHwvtgZ/incremental-state"
[2022-03-23T04:16:08Z INFO  collector::execute] run_rustc with incremental=true, build_kind=Opt, run_kind=Some(IncrUnchanged), patch=None
[2022-03-23T04:16:08Z DEBUG collector::execute] "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustc" "--manifest-path" "Cargo.toml" "-p" "file:///tmp/.tmpHwvtgZ#token-stream-stress:0.0.0" "--release" "--bin" "token-stream-stress" "--" "--wrap-rustc-with" "eprintln" "-C" "incremental=/tmp/.tmpHwvtgZ/incremental-state"
+ ./build/x86_64-unknown-linux-gnu/llvm/bin/llvm-profdata merge -o /tmp/rustc-pgo.profdata /tmp/rustc-pgo
+ rm -r ./build/x86_64-unknown-linux-gnu/llvm ./build/x86_64-unknown-linux-gnu/lld
+ python3 ../x.py dist --host x86_64-unknown-linux-gnu --target x86_64-unknown-linux-gnu --include-default-paths build-manifest --rust-profile-use=/tmp/rustc-pgo.profdata --llvm-profile-use=/tmp/llvm-pgo.profdata
warning: sqlite3 not available in python, skipping build directory lock
---
[RUSTC-TIMING] rustc_hir_pretty test:false 0.329
error: could not parse code block as Rust code
    --> compiler/rustc_lint_defs/src/lib.rs:579:11
     |
579  |           $(#[$attr])*
     |
    ::: compiler/rustc_lint_defs/src/builtin.rs:2651:1
     |
     |
2651 | / declare_lint! {
2652 | |     /// The `fuzzy_provenance_casts` lint detects an `as` cast between an integer
2654 | |     ///
...    |
2683 | |     };
2684 | | }
2684 | | }
     | |_- in this macro invocation
     |
     = note: `-D rustdoc::invalid-rust-codeblocks` implied by `-D warnings`
     = help: mark blocks that do not contain Rust code as text: ```text
     = note: error from rustc: prefix `md` is unknown
     = note: this error originates in the macro `declare_lint` (in Nightly builds, run with -Z macro-backtrace for more info)
error: could not document `rustc_lint_defs`

Caused by:
Caused by:
  process didn't exit successfully: `/checkout/obj/build/bootstrap/debug/rustdoc --edition=2021 --crate-type lib --crate-name rustc_lint_defs compiler/rustc_lint_defs/src/lib.rs --target x86_64-unknown-linux-gnu -o /checkout/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/doc --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat -C metadata=46f5d4de0fb20a0f -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/deps -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/release/deps --extern rustc_ast=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_ast-eec919490ca23ad3.rmeta --extern rustc_data_structures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_data_structures-c11097662dbbe965.rmeta --extern rustc_hir=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_hir-0a160e3a98742fc1.rmeta --extern rustc_macros=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/release/deps/librustc_macros-0da9b871c4e20306.so --extern rustc_serialize=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_serialize-7d8122854efd2cb5.rmeta --extern rustc_span=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_span-d9963cfb643a197e.rmeta --extern rustc_target=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_target-925861623a2b11ac.rmeta -Csymbol-mangling-version=v0 -Zunstable-options '--check-cfg=names()' '--check-cfg=values()' '--check-cfg=values(bootstrap)' '--check-cfg=values(parallel_compiler)' '--check-cfg=values(no_btreemap_remove_entry)' '--check-cfg=values(crossbeam_loom)' '--check-cfg=values(span_locations)' -Dwarnings '-Wrustdoc::invalid_codeblock_attributes' --crate-version '1.61.0-nightly
  (776e3314c
  2022-03-23)' --document-private-items '-Arustdoc::private-intra-doc-links' --enable-index-page -Zunstable-options -Znormalize-docs --show-type-layout --generate-link-to-definition --extern-html-root-url 'ena=https://docs.rs/ena/latest/'` (exit status: 1)
[RUSTC-TIMING] rustc_errors test:false 0.913
error: build failed
Build completed unsuccessfully in 0:24:07

@bors
Copy link
Contributor

bors commented Mar 23, 2022

☔ The latest upstream changes (presumably #95173) made this pull request unmergeable. Please resolve the merge conflicts.

@Gankra
Copy link
Contributor Author

Gankra commented Mar 23, 2022

Closing in favour of #95228 which is the cleaned up shippable version of the libs changes. However note that there's extra stuff on here like the rustc lint that should be factored out.

@Gankra Gankra closed this Mar 23, 2022
@Gankra Gankra added the A-strict-provenance Area: Strict provenance for raw pointers label Mar 30, 2022
@niluxv niluxv mentioned this pull request Apr 3, 2022
Dylan-DPC added a commit to Dylan-DPC/rust that referenced this pull request Apr 8, 2022
…chaelwoerister

Strict provenance lints

See rust-lang#95488.
This PR introduces two unstable (allow by default) lints to which lint on int2ptr and ptr2int casts, as the former is not possible in the strict provenance model and the latter can be written nicer using the `.addr()` API.
Based on an initial version of the lint by `@Gankra` in rust-lang#95199.
Dylan-DPC added a commit to Dylan-DPC/rust that referenced this pull request Apr 9, 2022
…chaelwoerister

Strict provenance lints

See rust-lang#95488.
This PR introduces two unstable (allow by default) lints to which lint on int2ptr and ptr2int casts, as the former is not possible in the strict provenance model and the latter can be written nicer using the `.addr()` API.
Based on an initial version of the lint by ``@Gankra`` in rust-lang#95199.
Dylan-DPC added a commit to Dylan-DPC/rust that referenced this pull request Apr 9, 2022
…chaelwoerister

Strict provenance lints

See rust-lang#95488.
This PR introduces two unstable (allow by default) lints to which lint on int2ptr and ptr2int casts, as the former is not possible in the strict provenance model and the latter can be written nicer using the `.addr()` API.
Based on an initial version of the lint by ```@Gankra``` in rust-lang#95199.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-strict-provenance Area: Strict provenance for raw pointers S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.