-
Notifications
You must be signed in to change notification settings - Fork 13.4k
const_intrinsic_copy - Add Reference to tracking issue #80699
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Conversation
(rust-highfive has picked a reviewer for you, use r? to override) |
#[inline] | ||
pub const unsafe fn copy<T>(src: *const T, dst: *mut T, count: usize) { | ||
extern "rust-intrinsic" { | ||
#[rustc_const_unstable(feature = "const_intrinsic_copy", issue = "none")] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not needed, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would have thought it is, otherwise you should not be able to call it below, looks like we have a hole in our analysis somewhere. The rustc_const_unstable
attribute is what makes the intrinsic const
, since we cannot have const fn
intrinsics since the syntax doesn't allow this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
uff.. I just checked, we have no unit tests ensuring that this actually works, so it must've regressed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reason I noticed it was because I did not see the corresponding line for copy_nonoverlapping
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe I got the error before the rebase(the reason the attribute was on copy
at all)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As far as I can tell, only looking at #79684, the error probably disappeared somewhere between the 4th and 21th of December. Quite a large span, but perhaps somewhere to start...
I might be completely wrong
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I... have an inlkling. I'm waiting for a rebuild with some more trace!
instructions, now that I am able to reproduce. I think the issue may be that the copy
intrinsic is declare inside a function with rustc_const_unstable
and inherits that
@bors r+ Let's merge it even with the "bug", I'll start working on it immediately. |
📌 Commit 63f5d61 has been approved by |
Ok, thanks :) |
☀️ Test successful - checks-actions |
…sics, r=RalfJung Stability oddity with const intrinsics cc `@RalfJung` In rust-lang#80699 (comment) `@usbalbin` realized we accepted some intrinsics as `const` without a `#[rustc_const_(un)stable]` attribute. I did some digging, and that example works because intrinsics inherit their stability from their parents... including `#[rustc_const_(un)stable]` attributes. While we may want to fix that (not sure, wasn't there just a MCPed PR that caused this on purpose?), we definitely want tests for it, thus this PR adding tests and some fun tracing statements.
…cs, r=RalfJung Stability oddity with const intrinsics cc `@RalfJung` In rust-lang#80699 (comment) `@usbalbin` realized we accepted some intrinsics as `const` without a `#[rustc_const_(un)stable]` attribute. I did some digging, and that example works because intrinsics inherit their stability from their parents... including `#[rustc_const_(un)stable]` attributes. While we may want to fix that (not sure, wasn't there just a MCPed PR that caused this on purpose?), we definitely want tests for it, thus this PR adding tests and some fun tracing statements.
Add reference to tracking issue #80697 for feature gate added in previous PR #79684