miri: implement more restrictive trivial-ABI checks - #160658

Merged
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
RalfJung:trivial-abi
Aug 8, 2026
Merged

miri: implement more restrictive trivial-ABI checks#160658
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
RalfJung:trivial-abi

Conversation

@RalfJung

@RalfJungRalfJung commented Aug 6, 2026

Copy link
Copy Markdown
Member

This implements the rules from #157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.

r? @oli-obk

  • I did not use an LLM to create a change in this PR.
  • I used an LLM to create a change in this PR, and I have explained below how it was used.

@rustbot

Copy link
Copy Markdown
Collaborator

Some changes occurred to the CTFE machinery

cc @oli-obk, @lcnr

miri is developed in its own repository. If the Miri part of this change can be broken out, consider making this change to rust-lang/miri instead. However, if Miri needs adjusting for rustc changes, just ignore this message.

cc @rust-lang/miri

Some changes occurred to the CTFE / Miri interpreter

cc @rust-lang/miri

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 6, 2026
@RalfJung
RalfJungforce-pushed the trivial-abi branch 2 times, most recently from b9f4523 to 2c388deCompareAugust 6, 2026 21:35

@oli-obkoli-obk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@rust-bors

rust-borsBot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 2c388de has been approved by oli-obk

It is now in the queue for this repository.

@rust-borsrust-borsBot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 7, 2026
jhpratt added a commit to jhpratt/rust that referenced this pull request Aug 7, 2026
miri: implement more restrictive trivial-ABI checks
This implements the rules from rust-lang#157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
@jhprattjhpratt mentioned this pull request Aug 7, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

💔 I suspect this PR failed tests as part of a rollup
@bors r-

After fixing the problem, consider running a try job for the failed job before re-approving.

Link to failure: #160721 (comment)

@rust-borsrust-borsBot 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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 7, 2026
@rust-bors

rust-borsBot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

This pull request was unapproved.

This PR was contained in a rollup (#160721), which was unapproved.

View changes since this unapproval

@RalfJung

Copy link
Copy Markdown
MemberAuthor

How did that not show up in CI in this PR...? Strange.

@RalfJung

Copy link
Copy Markdown
MemberAuthor

@bors r=oli-obk

@rust-bors

rust-borsBot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 179b9df has been approved by oli-obk

It is now in the queue for this repository.

@rust-borsrust-borsBot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Aug 8, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 8, 2026
miri: implement more restrictive trivial-ABI checks
This implements the rules from rust-lang#157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
This was referenced Aug 8, 2026
rust-borsBot pushed a commit that referenced this pull request Aug 8, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- #160336 (Move attributes out of rustc_hir)
- #160715 (ignore tests with the GCC backend if we can't find `libgccjit.so` for the target)
- #157609 (fix: build-std on 32 bit arm with 64 bit time)
- #160613 (Add regression test for unsized non-last struct field with overlapping impls)
- #160658 (miri: implement more restrictive trivial-ABI checks)
- #160704 (sort lint names in lint pass declarations)
- #160707 (Add regression test for higher ranked fn pointer impl not general enough)
- #160713 (Add regression test for #135287)
- #160720 (triagebot: add ubiratan to infra-ci)
- #160747 (rustc_errors: remove unused code)
- #160751 (Add regression test for incremental borrowck ICE with generic const exprs)
- #160753 (rustc_lint: remove unused rustc_attrs feature)
Failed merges:
- #158835 (rustc_passes: lint unused `#[path]` attributes on inline modules)
@rust-bors
rust-borsBot merged commit 945feb0 into rust-lang:mainAug 8, 2026
13 checks passed
@rustbotrustbot added this to the 1.99.0 milestone Aug 8, 2026
rust-timer added a commit that referenced this pull request Aug 8, 2026
Rollup merge of #160658 - RalfJung:trivial-abi, r=oli-obk
miri: implement more restrictive trivial-ABI checks
This implements the rules from #157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
@Jules-Bertholet

Jules-Bertholet commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

#157973 adresses only types available on stable. When considering unstable types, unsafe binders and pattern types should also be considered to have trivial ABI if wrapping a type that does.

@RalfJung

Copy link
Copy Markdown
MemberAuthor

That makes sense, thanks: #160775

pullBot pushed a commit to LeeeeeeM/miri that referenced this pull request Aug 9, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- rust-lang/rust#160336 (Move attributes out of rustc_hir)
- rust-lang/rust#160715 (ignore tests with the GCC backend if we can't find `libgccjit.so` for the target)
- rust-lang/rust#157609 (fix: build-std on 32 bit arm with 64 bit time)
- rust-lang/rust#160613 (Add regression test for unsized non-last struct field with overlapping impls)
- rust-lang/rust#160658 (miri: implement more restrictive trivial-ABI checks)
- rust-lang/rust#160704 (sort lint names in lint pass declarations)
- rust-lang/rust#160707 (Add regression test for higher ranked fn pointer impl not general enough)
- rust-lang/rust#160713 (Add regression test for rust-lang/rust#135287)
- rust-lang/rust#160720 (triagebot: add ubiratan to infra-ci)
- rust-lang/rust#160747 (rustc_errors: remove unused code)
- rust-lang/rust#160751 (Add regression test for incremental borrowck ICE with generic const exprs)
- rust-lang/rust#160753 (rustc_lint: remove unused rustc_attrs feature)
Failed merges:
- rust-lang/rust#158835 (rustc_passes: lint unused `#[path]` attributes on inline modules)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 11, 2026
…t, r=oli-obk
interpret: treat pattern and unsafe-binder as ABI-transparent
This was suggested by @Jules-Bertholet in rust-lang#160658. I didn't follow all the discussions for those types. Making them transparent makes sense to me though we should make sure this is explicitly discussed as a stable guarantee when it comes to stabilizing those types.
Tracking issues: rust-lang#123646, rust-lang#130516.
r? @oli-obk
rust-timer added a commit that referenced this pull request Aug 11, 2026
Rollup merge of #160775 - RalfJung:pattern-unsafe-transparent, r=oli-obk
interpret: treat pattern and unsafe-binder as ABI-transparent
This was suggested by @Jules-Bertholet in #160658. I didn't follow all the discussions for those types. Making them transparent makes sense to me though we should make sure this is explicitly discussed as a stable guarantee when it comes to stabilizing those types.
Tracking issues: #123646, #130516.
r? @oli-obk
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant 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.

5 participants

@RalfJung@rustbot@JonathanBrouwer@Jules-Bertholet@oli-obk
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

miri: implement more restrictive trivial-ABI checks - #160658

Merged
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
RalfJung:trivial-abi
Aug 8, 2026
Merged

miri: implement more restrictive trivial-ABI checks#160658
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
RalfJung:trivial-abi

Conversation

@RalfJung

@RalfJungRalfJung commented Aug 6, 2026

Copy link
Copy Markdown
Member

This implements the rules from #157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.

r? @oli-obk

  • I did not use an LLM to create a change in this PR.
  • I used an LLM to create a change in this PR, and I have explained below how it was used.

@rustbot

Copy link
Copy Markdown
Collaborator

Some changes occurred to the CTFE machinery

cc @oli-obk, @lcnr

miri is developed in its own repository. If the Miri part of this change can be broken out, consider making this change to rust-lang/miri instead. However, if Miri needs adjusting for rustc changes, just ignore this message.

cc @rust-lang/miri

Some changes occurred to the CTFE / Miri interpreter

cc @rust-lang/miri

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 6, 2026
@RalfJung
RalfJungforce-pushed the trivial-abi branch 2 times, most recently from b9f4523 to 2c388deCompareAugust 6, 2026 21:35

@oli-obkoli-obk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@rust-bors

rust-borsBot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 2c388de has been approved by oli-obk

It is now in the queue for this repository.

@rust-borsrust-borsBot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 7, 2026
jhpratt added a commit to jhpratt/rust that referenced this pull request Aug 7, 2026
miri: implement more restrictive trivial-ABI checks
This implements the rules from rust-lang#157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
@jhprattjhpratt mentioned this pull request Aug 7, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

💔 I suspect this PR failed tests as part of a rollup
@bors r-

After fixing the problem, consider running a try job for the failed job before re-approving.

Link to failure: #160721 (comment)

@rust-borsrust-borsBot 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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 7, 2026
@rust-bors

rust-borsBot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

This pull request was unapproved.

This PR was contained in a rollup (#160721), which was unapproved.

View changes since this unapproval

@RalfJung

Copy link
Copy Markdown
MemberAuthor

How did that not show up in CI in this PR...? Strange.

@RalfJung

Copy link
Copy Markdown
MemberAuthor

@bors r=oli-obk

@rust-bors

rust-borsBot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 179b9df has been approved by oli-obk

It is now in the queue for this repository.

@rust-borsrust-borsBot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Aug 8, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 8, 2026
miri: implement more restrictive trivial-ABI checks
This implements the rules from rust-lang#157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
This was referenced Aug 8, 2026
rust-borsBot pushed a commit that referenced this pull request Aug 8, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- #160336 (Move attributes out of rustc_hir)
- #160715 (ignore tests with the GCC backend if we can't find `libgccjit.so` for the target)
- #157609 (fix: build-std on 32 bit arm with 64 bit time)
- #160613 (Add regression test for unsized non-last struct field with overlapping impls)
- #160658 (miri: implement more restrictive trivial-ABI checks)
- #160704 (sort lint names in lint pass declarations)
- #160707 (Add regression test for higher ranked fn pointer impl not general enough)
- #160713 (Add regression test for #135287)
- #160720 (triagebot: add ubiratan to infra-ci)
- #160747 (rustc_errors: remove unused code)
- #160751 (Add regression test for incremental borrowck ICE with generic const exprs)
- #160753 (rustc_lint: remove unused rustc_attrs feature)
Failed merges:
- #158835 (rustc_passes: lint unused `#[path]` attributes on inline modules)
@rust-bors
rust-borsBot merged commit 945feb0 into rust-lang:mainAug 8, 2026
13 checks passed
@rustbotrustbot added this to the 1.99.0 milestone Aug 8, 2026
rust-timer added a commit that referenced this pull request Aug 8, 2026
Rollup merge of #160658 - RalfJung:trivial-abi, r=oli-obk
miri: implement more restrictive trivial-ABI checks
This implements the rules from #157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
@Jules-Bertholet

Jules-Bertholet commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

#157973 adresses only types available on stable. When considering unstable types, unsafe binders and pattern types should also be considered to have trivial ABI if wrapping a type that does.

@RalfJung

Copy link
Copy Markdown
MemberAuthor

That makes sense, thanks: #160775

pullBot pushed a commit to LeeeeeeM/miri that referenced this pull request Aug 9, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- rust-lang/rust#160336 (Move attributes out of rustc_hir)
- rust-lang/rust#160715 (ignore tests with the GCC backend if we can't find `libgccjit.so` for the target)
- rust-lang/rust#157609 (fix: build-std on 32 bit arm with 64 bit time)
- rust-lang/rust#160613 (Add regression test for unsized non-last struct field with overlapping impls)
- rust-lang/rust#160658 (miri: implement more restrictive trivial-ABI checks)
- rust-lang/rust#160704 (sort lint names in lint pass declarations)
- rust-lang/rust#160707 (Add regression test for higher ranked fn pointer impl not general enough)
- rust-lang/rust#160713 (Add regression test for rust-lang/rust#135287)
- rust-lang/rust#160720 (triagebot: add ubiratan to infra-ci)
- rust-lang/rust#160747 (rustc_errors: remove unused code)
- rust-lang/rust#160751 (Add regression test for incremental borrowck ICE with generic const exprs)
- rust-lang/rust#160753 (rustc_lint: remove unused rustc_attrs feature)
Failed merges:
- rust-lang/rust#158835 (rustc_passes: lint unused `#[path]` attributes on inline modules)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 11, 2026
…t, r=oli-obk
interpret: treat pattern and unsafe-binder as ABI-transparent
This was suggested by @Jules-Bertholet in rust-lang#160658. I didn't follow all the discussions for those types. Making them transparent makes sense to me though we should make sure this is explicitly discussed as a stable guarantee when it comes to stabilizing those types.
Tracking issues: rust-lang#123646, rust-lang#130516.
r? @oli-obk
rust-timer added a commit that referenced this pull request Aug 11, 2026
Rollup merge of #160775 - RalfJung:pattern-unsafe-transparent, r=oli-obk
interpret: treat pattern and unsafe-binder as ABI-transparent
This was suggested by @Jules-Bertholet in #160658. I didn't follow all the discussions for those types. Making them transparent makes sense to me though we should make sure this is explicitly discussed as a stable guarantee when it comes to stabilizing those types.
Tracking issues: #123646, #130516.
r? @oli-obk
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant 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.

5 participants

@RalfJung@rustbot@JonathanBrouwer@Jules-Bertholet@oli-obk
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

miri: implement more restrictive trivial-ABI checks - #160658

Merged
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
RalfJung:trivial-abi
Aug 8, 2026
Merged

miri: implement more restrictive trivial-ABI checks#160658
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
RalfJung:trivial-abi

Conversation

@RalfJung

@RalfJungRalfJung commented Aug 6, 2026

Copy link
Copy Markdown
Member

This implements the rules from #157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.

r? @oli-obk

  • I did not use an LLM to create a change in this PR.
  • I used an LLM to create a change in this PR, and I have explained below how it was used.

@rustbot

Copy link
Copy Markdown
Collaborator

Some changes occurred to the CTFE machinery

cc @oli-obk, @lcnr

miri is developed in its own repository. If the Miri part of this change can be broken out, consider making this change to rust-lang/miri instead. However, if Miri needs adjusting for rustc changes, just ignore this message.

cc @rust-lang/miri

Some changes occurred to the CTFE / Miri interpreter

cc @rust-lang/miri

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 6, 2026
@RalfJung
RalfJungforce-pushed the trivial-abi branch 2 times, most recently from b9f4523 to 2c388deCompareAugust 6, 2026 21:35

@oli-obkoli-obk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@rust-bors

rust-borsBot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 2c388de has been approved by oli-obk

It is now in the queue for this repository.

@rust-borsrust-borsBot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 7, 2026
jhpratt added a commit to jhpratt/rust that referenced this pull request Aug 7, 2026
miri: implement more restrictive trivial-ABI checks
This implements the rules from rust-lang#157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
@jhprattjhpratt mentioned this pull request Aug 7, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

💔 I suspect this PR failed tests as part of a rollup
@bors r-

After fixing the problem, consider running a try job for the failed job before re-approving.

Link to failure: #160721 (comment)

@rust-borsrust-borsBot 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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 7, 2026
@rust-bors

rust-borsBot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

This pull request was unapproved.

This PR was contained in a rollup (#160721), which was unapproved.

View changes since this unapproval

@RalfJung

Copy link
Copy Markdown
MemberAuthor

How did that not show up in CI in this PR...? Strange.

@RalfJung

Copy link
Copy Markdown
MemberAuthor

@bors r=oli-obk

@rust-bors

rust-borsBot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 179b9df has been approved by oli-obk

It is now in the queue for this repository.

@rust-borsrust-borsBot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Aug 8, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 8, 2026
miri: implement more restrictive trivial-ABI checks
This implements the rules from rust-lang#157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
This was referenced Aug 8, 2026
rust-borsBot pushed a commit that referenced this pull request Aug 8, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- #160336 (Move attributes out of rustc_hir)
- #160715 (ignore tests with the GCC backend if we can't find `libgccjit.so` for the target)
- #157609 (fix: build-std on 32 bit arm with 64 bit time)
- #160613 (Add regression test for unsized non-last struct field with overlapping impls)
- #160658 (miri: implement more restrictive trivial-ABI checks)
- #160704 (sort lint names in lint pass declarations)
- #160707 (Add regression test for higher ranked fn pointer impl not general enough)
- #160713 (Add regression test for #135287)
- #160720 (triagebot: add ubiratan to infra-ci)
- #160747 (rustc_errors: remove unused code)
- #160751 (Add regression test for incremental borrowck ICE with generic const exprs)
- #160753 (rustc_lint: remove unused rustc_attrs feature)
Failed merges:
- #158835 (rustc_passes: lint unused `#[path]` attributes on inline modules)
@rust-bors
rust-borsBot merged commit 945feb0 into rust-lang:mainAug 8, 2026
13 checks passed
@rustbotrustbot added this to the 1.99.0 milestone Aug 8, 2026
rust-timer added a commit that referenced this pull request Aug 8, 2026
Rollup merge of #160658 - RalfJung:trivial-abi, r=oli-obk
miri: implement more restrictive trivial-ABI checks
This implements the rules from #157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
@Jules-Bertholet

Jules-Bertholet commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

#157973 adresses only types available on stable. When considering unstable types, unsafe binders and pattern types should also be considered to have trivial ABI if wrapping a type that does.

@RalfJung

Copy link
Copy Markdown
MemberAuthor

That makes sense, thanks: #160775

pullBot pushed a commit to LeeeeeeM/miri that referenced this pull request Aug 9, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- rust-lang/rust#160336 (Move attributes out of rustc_hir)
- rust-lang/rust#160715 (ignore tests with the GCC backend if we can't find `libgccjit.so` for the target)
- rust-lang/rust#157609 (fix: build-std on 32 bit arm with 64 bit time)
- rust-lang/rust#160613 (Add regression test for unsized non-last struct field with overlapping impls)
- rust-lang/rust#160658 (miri: implement more restrictive trivial-ABI checks)
- rust-lang/rust#160704 (sort lint names in lint pass declarations)
- rust-lang/rust#160707 (Add regression test for higher ranked fn pointer impl not general enough)
- rust-lang/rust#160713 (Add regression test for rust-lang/rust#135287)
- rust-lang/rust#160720 (triagebot: add ubiratan to infra-ci)
- rust-lang/rust#160747 (rustc_errors: remove unused code)
- rust-lang/rust#160751 (Add regression test for incremental borrowck ICE with generic const exprs)
- rust-lang/rust#160753 (rustc_lint: remove unused rustc_attrs feature)
Failed merges:
- rust-lang/rust#158835 (rustc_passes: lint unused `#[path]` attributes on inline modules)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 11, 2026
…t, r=oli-obk
interpret: treat pattern and unsafe-binder as ABI-transparent
This was suggested by @Jules-Bertholet in rust-lang#160658. I didn't follow all the discussions for those types. Making them transparent makes sense to me though we should make sure this is explicitly discussed as a stable guarantee when it comes to stabilizing those types.
Tracking issues: rust-lang#123646, rust-lang#130516.
r? @oli-obk
rust-timer added a commit that referenced this pull request Aug 11, 2026
Rollup merge of #160775 - RalfJung:pattern-unsafe-transparent, r=oli-obk
interpret: treat pattern and unsafe-binder as ABI-transparent
This was suggested by @Jules-Bertholet in #160658. I didn't follow all the discussions for those types. Making them transparent makes sense to me though we should make sure this is explicitly discussed as a stable guarantee when it comes to stabilizing those types.
Tracking issues: #123646, #130516.
r? @oli-obk
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant 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.

5 participants

@RalfJung@rustbot@JonathanBrouwer@Jules-Bertholet@oli-obk
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

miri: implement more restrictive trivial-ABI checks - #160658

Merged
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
RalfJung:trivial-abi
Aug 8, 2026
Merged

miri: implement more restrictive trivial-ABI checks#160658
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
RalfJung:trivial-abi

Conversation

@RalfJung

@RalfJungRalfJung commented Aug 6, 2026

Copy link
Copy Markdown
Member

This implements the rules from #157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.

r? @oli-obk

  • I did not use an LLM to create a change in this PR.
  • I used an LLM to create a change in this PR, and I have explained below how it was used.

@rustbot

Copy link
Copy Markdown
Collaborator

Some changes occurred to the CTFE machinery

cc @oli-obk, @lcnr

miri is developed in its own repository. If the Miri part of this change can be broken out, consider making this change to rust-lang/miri instead. However, if Miri needs adjusting for rustc changes, just ignore this message.

cc @rust-lang/miri

Some changes occurred to the CTFE / Miri interpreter

cc @rust-lang/miri

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 6, 2026
@RalfJung
RalfJungforce-pushed the trivial-abi branch 2 times, most recently from b9f4523 to 2c388deCompareAugust 6, 2026 21:35

@oli-obkoli-obk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@rust-bors

rust-borsBot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 2c388de has been approved by oli-obk

It is now in the queue for this repository.

@rust-borsrust-borsBot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 7, 2026
jhpratt added a commit to jhpratt/rust that referenced this pull request Aug 7, 2026
miri: implement more restrictive trivial-ABI checks
This implements the rules from rust-lang#157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
@jhprattjhpratt mentioned this pull request Aug 7, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

💔 I suspect this PR failed tests as part of a rollup
@bors r-

After fixing the problem, consider running a try job for the failed job before re-approving.

Link to failure: #160721 (comment)

@rust-borsrust-borsBot 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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 7, 2026
@rust-bors

rust-borsBot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

This pull request was unapproved.

This PR was contained in a rollup (#160721), which was unapproved.

View changes since this unapproval

@RalfJung

Copy link
Copy Markdown
MemberAuthor

How did that not show up in CI in this PR...? Strange.

@RalfJung

Copy link
Copy Markdown
MemberAuthor

@bors r=oli-obk

@rust-bors

rust-borsBot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 179b9df has been approved by oli-obk

It is now in the queue for this repository.

@rust-borsrust-borsBot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Aug 8, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 8, 2026
miri: implement more restrictive trivial-ABI checks
This implements the rules from rust-lang#157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
This was referenced Aug 8, 2026
rust-borsBot pushed a commit that referenced this pull request Aug 8, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- #160336 (Move attributes out of rustc_hir)
- #160715 (ignore tests with the GCC backend if we can't find `libgccjit.so` for the target)
- #157609 (fix: build-std on 32 bit arm with 64 bit time)
- #160613 (Add regression test for unsized non-last struct field with overlapping impls)
- #160658 (miri: implement more restrictive trivial-ABI checks)
- #160704 (sort lint names in lint pass declarations)
- #160707 (Add regression test for higher ranked fn pointer impl not general enough)
- #160713 (Add regression test for #135287)
- #160720 (triagebot: add ubiratan to infra-ci)
- #160747 (rustc_errors: remove unused code)
- #160751 (Add regression test for incremental borrowck ICE with generic const exprs)
- #160753 (rustc_lint: remove unused rustc_attrs feature)
Failed merges:
- #158835 (rustc_passes: lint unused `#[path]` attributes on inline modules)
@rust-bors
rust-borsBot merged commit 945feb0 into rust-lang:mainAug 8, 2026
13 checks passed
@rustbotrustbot added this to the 1.99.0 milestone Aug 8, 2026
rust-timer added a commit that referenced this pull request Aug 8, 2026
Rollup merge of #160658 - RalfJung:trivial-abi, r=oli-obk
miri: implement more restrictive trivial-ABI checks
This implements the rules from #157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
@Jules-Bertholet

Jules-Bertholet commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

#157973 adresses only types available on stable. When considering unstable types, unsafe binders and pattern types should also be considered to have trivial ABI if wrapping a type that does.

@RalfJung

Copy link
Copy Markdown
MemberAuthor

That makes sense, thanks: #160775

pullBot pushed a commit to LeeeeeeM/miri that referenced this pull request Aug 9, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- rust-lang/rust#160336 (Move attributes out of rustc_hir)
- rust-lang/rust#160715 (ignore tests with the GCC backend if we can't find `libgccjit.so` for the target)
- rust-lang/rust#157609 (fix: build-std on 32 bit arm with 64 bit time)
- rust-lang/rust#160613 (Add regression test for unsized non-last struct field with overlapping impls)
- rust-lang/rust#160658 (miri: implement more restrictive trivial-ABI checks)
- rust-lang/rust#160704 (sort lint names in lint pass declarations)
- rust-lang/rust#160707 (Add regression test for higher ranked fn pointer impl not general enough)
- rust-lang/rust#160713 (Add regression test for rust-lang/rust#135287)
- rust-lang/rust#160720 (triagebot: add ubiratan to infra-ci)
- rust-lang/rust#160747 (rustc_errors: remove unused code)
- rust-lang/rust#160751 (Add regression test for incremental borrowck ICE with generic const exprs)
- rust-lang/rust#160753 (rustc_lint: remove unused rustc_attrs feature)
Failed merges:
- rust-lang/rust#158835 (rustc_passes: lint unused `#[path]` attributes on inline modules)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 11, 2026
…t, r=oli-obk
interpret: treat pattern and unsafe-binder as ABI-transparent
This was suggested by @Jules-Bertholet in rust-lang#160658. I didn't follow all the discussions for those types. Making them transparent makes sense to me though we should make sure this is explicitly discussed as a stable guarantee when it comes to stabilizing those types.
Tracking issues: rust-lang#123646, rust-lang#130516.
r? @oli-obk
rust-timer added a commit that referenced this pull request Aug 11, 2026
Rollup merge of #160775 - RalfJung:pattern-unsafe-transparent, r=oli-obk
interpret: treat pattern and unsafe-binder as ABI-transparent
This was suggested by @Jules-Bertholet in #160658. I didn't follow all the discussions for those types. Making them transparent makes sense to me though we should make sure this is explicitly discussed as a stable guarantee when it comes to stabilizing those types.
Tracking issues: #123646, #130516.
r? @oli-obk
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant 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.

5 participants

@RalfJung@rustbot@JonathanBrouwer@Jules-Bertholet@oli-obk
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

miri: implement more restrictive trivial-ABI checks - #160658

Merged
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
RalfJung:trivial-abi
Aug 8, 2026
Merged

miri: implement more restrictive trivial-ABI checks#160658
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
RalfJung:trivial-abi

Conversation

@RalfJung

@RalfJungRalfJung commented Aug 6, 2026

Copy link
Copy Markdown
Member

This implements the rules from #157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.

r? @oli-obk

  • I did not use an LLM to create a change in this PR.
  • I used an LLM to create a change in this PR, and I have explained below how it was used.

@rustbot

Copy link
Copy Markdown
Collaborator

Some changes occurred to the CTFE machinery

cc @oli-obk, @lcnr

miri is developed in its own repository. If the Miri part of this change can be broken out, consider making this change to rust-lang/miri instead. However, if Miri needs adjusting for rustc changes, just ignore this message.

cc @rust-lang/miri

Some changes occurred to the CTFE / Miri interpreter

cc @rust-lang/miri

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 6, 2026
@RalfJung
RalfJungforce-pushed the trivial-abi branch 2 times, most recently from b9f4523 to 2c388deCompareAugust 6, 2026 21:35

@oli-obkoli-obk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@rust-bors

rust-borsBot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 2c388de has been approved by oli-obk

It is now in the queue for this repository.

@rust-borsrust-borsBot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 7, 2026
jhpratt added a commit to jhpratt/rust that referenced this pull request Aug 7, 2026
miri: implement more restrictive trivial-ABI checks
This implements the rules from rust-lang#157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
@jhprattjhpratt mentioned this pull request Aug 7, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

💔 I suspect this PR failed tests as part of a rollup
@bors r-

After fixing the problem, consider running a try job for the failed job before re-approving.

Link to failure: #160721 (comment)

@rust-borsrust-borsBot 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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 7, 2026
@rust-bors

rust-borsBot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

This pull request was unapproved.

This PR was contained in a rollup (#160721), which was unapproved.

View changes since this unapproval

@RalfJung

Copy link
Copy Markdown
MemberAuthor

How did that not show up in CI in this PR...? Strange.

@RalfJung

Copy link
Copy Markdown
MemberAuthor

@bors r=oli-obk

@rust-bors

rust-borsBot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 179b9df has been approved by oli-obk

It is now in the queue for this repository.

@rust-borsrust-borsBot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Aug 8, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 8, 2026
miri: implement more restrictive trivial-ABI checks
This implements the rules from rust-lang#157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
This was referenced Aug 8, 2026
rust-borsBot pushed a commit that referenced this pull request Aug 8, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- #160336 (Move attributes out of rustc_hir)
- #160715 (ignore tests with the GCC backend if we can't find `libgccjit.so` for the target)
- #157609 (fix: build-std on 32 bit arm with 64 bit time)
- #160613 (Add regression test for unsized non-last struct field with overlapping impls)
- #160658 (miri: implement more restrictive trivial-ABI checks)
- #160704 (sort lint names in lint pass declarations)
- #160707 (Add regression test for higher ranked fn pointer impl not general enough)
- #160713 (Add regression test for #135287)
- #160720 (triagebot: add ubiratan to infra-ci)
- #160747 (rustc_errors: remove unused code)
- #160751 (Add regression test for incremental borrowck ICE with generic const exprs)
- #160753 (rustc_lint: remove unused rustc_attrs feature)
Failed merges:
- #158835 (rustc_passes: lint unused `#[path]` attributes on inline modules)
@rust-bors
rust-borsBot merged commit 945feb0 into rust-lang:mainAug 8, 2026
13 checks passed
@rustbotrustbot added this to the 1.99.0 milestone Aug 8, 2026
rust-timer added a commit that referenced this pull request Aug 8, 2026
Rollup merge of #160658 - RalfJung:trivial-abi, r=oli-obk
miri: implement more restrictive trivial-ABI checks
This implements the rules from #157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
@Jules-Bertholet

Jules-Bertholet commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

#157973 adresses only types available on stable. When considering unstable types, unsafe binders and pattern types should also be considered to have trivial ABI if wrapping a type that does.

@RalfJung

Copy link
Copy Markdown
MemberAuthor

That makes sense, thanks: #160775

pullBot pushed a commit to LeeeeeeM/miri that referenced this pull request Aug 9, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- rust-lang/rust#160336 (Move attributes out of rustc_hir)
- rust-lang/rust#160715 (ignore tests with the GCC backend if we can't find `libgccjit.so` for the target)
- rust-lang/rust#157609 (fix: build-std on 32 bit arm with 64 bit time)
- rust-lang/rust#160613 (Add regression test for unsized non-last struct field with overlapping impls)
- rust-lang/rust#160658 (miri: implement more restrictive trivial-ABI checks)
- rust-lang/rust#160704 (sort lint names in lint pass declarations)
- rust-lang/rust#160707 (Add regression test for higher ranked fn pointer impl not general enough)
- rust-lang/rust#160713 (Add regression test for rust-lang/rust#135287)
- rust-lang/rust#160720 (triagebot: add ubiratan to infra-ci)
- rust-lang/rust#160747 (rustc_errors: remove unused code)
- rust-lang/rust#160751 (Add regression test for incremental borrowck ICE with generic const exprs)
- rust-lang/rust#160753 (rustc_lint: remove unused rustc_attrs feature)
Failed merges:
- rust-lang/rust#158835 (rustc_passes: lint unused `#[path]` attributes on inline modules)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 11, 2026
…t, r=oli-obk
interpret: treat pattern and unsafe-binder as ABI-transparent
This was suggested by @Jules-Bertholet in rust-lang#160658. I didn't follow all the discussions for those types. Making them transparent makes sense to me though we should make sure this is explicitly discussed as a stable guarantee when it comes to stabilizing those types.
Tracking issues: rust-lang#123646, rust-lang#130516.
r? @oli-obk
rust-timer added a commit that referenced this pull request Aug 11, 2026
Rollup merge of #160775 - RalfJung:pattern-unsafe-transparent, r=oli-obk
interpret: treat pattern and unsafe-binder as ABI-transparent
This was suggested by @Jules-Bertholet in #160658. I didn't follow all the discussions for those types. Making them transparent makes sense to me though we should make sure this is explicitly discussed as a stable guarantee when it comes to stabilizing those types.
Tracking issues: #123646, #130516.
r? @oli-obk
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant 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.

5 participants

@RalfJung@rustbot@JonathanBrouwer@Jules-Bertholet@oli-obk
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

miri: implement more restrictive trivial-ABI checks - #160658

Merged
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
RalfJung:trivial-abi
Aug 8, 2026
Merged

miri: implement more restrictive trivial-ABI checks#160658
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
RalfJung:trivial-abi

Conversation

@RalfJung

@RalfJungRalfJung commented Aug 6, 2026

Copy link
Copy Markdown
Member

This implements the rules from #157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.

r? @oli-obk

  • I did not use an LLM to create a change in this PR.
  • I used an LLM to create a change in this PR, and I have explained below how it was used.

@rustbot

Copy link
Copy Markdown
Collaborator

Some changes occurred to the CTFE machinery

cc @oli-obk, @lcnr

miri is developed in its own repository. If the Miri part of this change can be broken out, consider making this change to rust-lang/miri instead. However, if Miri needs adjusting for rustc changes, just ignore this message.

cc @rust-lang/miri

Some changes occurred to the CTFE / Miri interpreter

cc @rust-lang/miri

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 6, 2026
@RalfJung
RalfJungforce-pushed the trivial-abi branch 2 times, most recently from b9f4523 to 2c388deCompareAugust 6, 2026 21:35

@oli-obkoli-obk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@rust-bors

rust-borsBot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 2c388de has been approved by oli-obk

It is now in the queue for this repository.

@rust-borsrust-borsBot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 7, 2026
jhpratt added a commit to jhpratt/rust that referenced this pull request Aug 7, 2026
miri: implement more restrictive trivial-ABI checks
This implements the rules from rust-lang#157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
@jhprattjhpratt mentioned this pull request Aug 7, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

💔 I suspect this PR failed tests as part of a rollup
@bors r-

After fixing the problem, consider running a try job for the failed job before re-approving.

Link to failure: #160721 (comment)

@rust-borsrust-borsBot 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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 7, 2026
@rust-bors

rust-borsBot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

This pull request was unapproved.

This PR was contained in a rollup (#160721), which was unapproved.

View changes since this unapproval

@RalfJung

Copy link
Copy Markdown
MemberAuthor

How did that not show up in CI in this PR...? Strange.

@RalfJung

Copy link
Copy Markdown
MemberAuthor

@bors r=oli-obk

@rust-bors

rust-borsBot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 179b9df has been approved by oli-obk

It is now in the queue for this repository.

@rust-borsrust-borsBot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Aug 8, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 8, 2026
miri: implement more restrictive trivial-ABI checks
This implements the rules from rust-lang#157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
This was referenced Aug 8, 2026
rust-borsBot pushed a commit that referenced this pull request Aug 8, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- #160336 (Move attributes out of rustc_hir)
- #160715 (ignore tests with the GCC backend if we can't find `libgccjit.so` for the target)
- #157609 (fix: build-std on 32 bit arm with 64 bit time)
- #160613 (Add regression test for unsized non-last struct field with overlapping impls)
- #160658 (miri: implement more restrictive trivial-ABI checks)
- #160704 (sort lint names in lint pass declarations)
- #160707 (Add regression test for higher ranked fn pointer impl not general enough)
- #160713 (Add regression test for #135287)
- #160720 (triagebot: add ubiratan to infra-ci)
- #160747 (rustc_errors: remove unused code)
- #160751 (Add regression test for incremental borrowck ICE with generic const exprs)
- #160753 (rustc_lint: remove unused rustc_attrs feature)
Failed merges:
- #158835 (rustc_passes: lint unused `#[path]` attributes on inline modules)
@rust-bors
rust-borsBot merged commit 945feb0 into rust-lang:mainAug 8, 2026
13 checks passed
@rustbotrustbot added this to the 1.99.0 milestone Aug 8, 2026
rust-timer added a commit that referenced this pull request Aug 8, 2026
Rollup merge of #160658 - RalfJung:trivial-abi, r=oli-obk
miri: implement more restrictive trivial-ABI checks
This implements the rules from #157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
@Jules-Bertholet

Jules-Bertholet commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

#157973 adresses only types available on stable. When considering unstable types, unsafe binders and pattern types should also be considered to have trivial ABI if wrapping a type that does.

@RalfJung

Copy link
Copy Markdown
MemberAuthor

That makes sense, thanks: #160775

pullBot pushed a commit to LeeeeeeM/miri that referenced this pull request Aug 9, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- rust-lang/rust#160336 (Move attributes out of rustc_hir)
- rust-lang/rust#160715 (ignore tests with the GCC backend if we can't find `libgccjit.so` for the target)
- rust-lang/rust#157609 (fix: build-std on 32 bit arm with 64 bit time)
- rust-lang/rust#160613 (Add regression test for unsized non-last struct field with overlapping impls)
- rust-lang/rust#160658 (miri: implement more restrictive trivial-ABI checks)
- rust-lang/rust#160704 (sort lint names in lint pass declarations)
- rust-lang/rust#160707 (Add regression test for higher ranked fn pointer impl not general enough)
- rust-lang/rust#160713 (Add regression test for rust-lang/rust#135287)
- rust-lang/rust#160720 (triagebot: add ubiratan to infra-ci)
- rust-lang/rust#160747 (rustc_errors: remove unused code)
- rust-lang/rust#160751 (Add regression test for incremental borrowck ICE with generic const exprs)
- rust-lang/rust#160753 (rustc_lint: remove unused rustc_attrs feature)
Failed merges:
- rust-lang/rust#158835 (rustc_passes: lint unused `#[path]` attributes on inline modules)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 11, 2026
…t, r=oli-obk
interpret: treat pattern and unsafe-binder as ABI-transparent
This was suggested by @Jules-Bertholet in rust-lang#160658. I didn't follow all the discussions for those types. Making them transparent makes sense to me though we should make sure this is explicitly discussed as a stable guarantee when it comes to stabilizing those types.
Tracking issues: rust-lang#123646, rust-lang#130516.
r? @oli-obk
rust-timer added a commit that referenced this pull request Aug 11, 2026
Rollup merge of #160775 - RalfJung:pattern-unsafe-transparent, r=oli-obk
interpret: treat pattern and unsafe-binder as ABI-transparent
This was suggested by @Jules-Bertholet in #160658. I didn't follow all the discussions for those types. Making them transparent makes sense to me though we should make sure this is explicitly discussed as a stable guarantee when it comes to stabilizing those types.
Tracking issues: #123646, #130516.
r? @oli-obk
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant 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.

5 participants

@RalfJung@rustbot@JonathanBrouwer@Jules-Bertholet@oli-obk
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

miri: implement more restrictive trivial-ABI checks - #160658

Merged
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
RalfJung:trivial-abi
Aug 8, 2026
Merged

miri: implement more restrictive trivial-ABI checks#160658
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
RalfJung:trivial-abi

Conversation

@RalfJung

@RalfJungRalfJung commented Aug 6, 2026

Copy link
Copy Markdown
Member

This implements the rules from #157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.

r? @oli-obk

  • I did not use an LLM to create a change in this PR.
  • I used an LLM to create a change in this PR, and I have explained below how it was used.

@rustbot

Copy link
Copy Markdown
Collaborator

Some changes occurred to the CTFE machinery

cc @oli-obk, @lcnr

miri is developed in its own repository. If the Miri part of this change can be broken out, consider making this change to rust-lang/miri instead. However, if Miri needs adjusting for rustc changes, just ignore this message.

cc @rust-lang/miri

Some changes occurred to the CTFE / Miri interpreter

cc @rust-lang/miri

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 6, 2026
@RalfJung
RalfJungforce-pushed the trivial-abi branch 2 times, most recently from b9f4523 to 2c388deCompareAugust 6, 2026 21:35

@oli-obkoli-obk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@rust-bors

rust-borsBot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 2c388de has been approved by oli-obk

It is now in the queue for this repository.

@rust-borsrust-borsBot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 7, 2026
jhpratt added a commit to jhpratt/rust that referenced this pull request Aug 7, 2026
miri: implement more restrictive trivial-ABI checks
This implements the rules from rust-lang#157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
@jhprattjhpratt mentioned this pull request Aug 7, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

💔 I suspect this PR failed tests as part of a rollup
@bors r-

After fixing the problem, consider running a try job for the failed job before re-approving.

Link to failure: #160721 (comment)

@rust-borsrust-borsBot 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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 7, 2026
@rust-bors

rust-borsBot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

This pull request was unapproved.

This PR was contained in a rollup (#160721), which was unapproved.

View changes since this unapproval

@RalfJung

Copy link
Copy Markdown
MemberAuthor

How did that not show up in CI in this PR...? Strange.

@RalfJung

Copy link
Copy Markdown
MemberAuthor

@bors r=oli-obk

@rust-bors

rust-borsBot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 179b9df has been approved by oli-obk

It is now in the queue for this repository.

@rust-borsrust-borsBot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Aug 8, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 8, 2026
miri: implement more restrictive trivial-ABI checks
This implements the rules from rust-lang#157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
This was referenced Aug 8, 2026
rust-borsBot pushed a commit that referenced this pull request Aug 8, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- #160336 (Move attributes out of rustc_hir)
- #160715 (ignore tests with the GCC backend if we can't find `libgccjit.so` for the target)
- #157609 (fix: build-std on 32 bit arm with 64 bit time)
- #160613 (Add regression test for unsized non-last struct field with overlapping impls)
- #160658 (miri: implement more restrictive trivial-ABI checks)
- #160704 (sort lint names in lint pass declarations)
- #160707 (Add regression test for higher ranked fn pointer impl not general enough)
- #160713 (Add regression test for #135287)
- #160720 (triagebot: add ubiratan to infra-ci)
- #160747 (rustc_errors: remove unused code)
- #160751 (Add regression test for incremental borrowck ICE with generic const exprs)
- #160753 (rustc_lint: remove unused rustc_attrs feature)
Failed merges:
- #158835 (rustc_passes: lint unused `#[path]` attributes on inline modules)
@rust-bors
rust-borsBot merged commit 945feb0 into rust-lang:mainAug 8, 2026
13 checks passed
@rustbotrustbot added this to the 1.99.0 milestone Aug 8, 2026
rust-timer added a commit that referenced this pull request Aug 8, 2026
Rollup merge of #160658 - RalfJung:trivial-abi, r=oli-obk
miri: implement more restrictive trivial-ABI checks
This implements the rules from #157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
@Jules-Bertholet

Jules-Bertholet commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

#157973 adresses only types available on stable. When considering unstable types, unsafe binders and pattern types should also be considered to have trivial ABI if wrapping a type that does.

@RalfJung

Copy link
Copy Markdown
MemberAuthor

That makes sense, thanks: #160775

pullBot pushed a commit to LeeeeeeM/miri that referenced this pull request Aug 9, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- rust-lang/rust#160336 (Move attributes out of rustc_hir)
- rust-lang/rust#160715 (ignore tests with the GCC backend if we can't find `libgccjit.so` for the target)
- rust-lang/rust#157609 (fix: build-std on 32 bit arm with 64 bit time)
- rust-lang/rust#160613 (Add regression test for unsized non-last struct field with overlapping impls)
- rust-lang/rust#160658 (miri: implement more restrictive trivial-ABI checks)
- rust-lang/rust#160704 (sort lint names in lint pass declarations)
- rust-lang/rust#160707 (Add regression test for higher ranked fn pointer impl not general enough)
- rust-lang/rust#160713 (Add regression test for rust-lang/rust#135287)
- rust-lang/rust#160720 (triagebot: add ubiratan to infra-ci)
- rust-lang/rust#160747 (rustc_errors: remove unused code)
- rust-lang/rust#160751 (Add regression test for incremental borrowck ICE with generic const exprs)
- rust-lang/rust#160753 (rustc_lint: remove unused rustc_attrs feature)
Failed merges:
- rust-lang/rust#158835 (rustc_passes: lint unused `#[path]` attributes on inline modules)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 11, 2026
…t, r=oli-obk
interpret: treat pattern and unsafe-binder as ABI-transparent
This was suggested by @Jules-Bertholet in rust-lang#160658. I didn't follow all the discussions for those types. Making them transparent makes sense to me though we should make sure this is explicitly discussed as a stable guarantee when it comes to stabilizing those types.
Tracking issues: rust-lang#123646, rust-lang#130516.
r? @oli-obk
rust-timer added a commit that referenced this pull request Aug 11, 2026
Rollup merge of #160775 - RalfJung:pattern-unsafe-transparent, r=oli-obk
interpret: treat pattern and unsafe-binder as ABI-transparent
This was suggested by @Jules-Bertholet in #160658. I didn't follow all the discussions for those types. Making them transparent makes sense to me though we should make sure this is explicitly discussed as a stable guarantee when it comes to stabilizing those types.
Tracking issues: #123646, #130516.
r? @oli-obk
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant 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.

5 participants

@RalfJung@rustbot@JonathanBrouwer@Jules-Bertholet@oli-obk
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

miri: implement more restrictive trivial-ABI checks - #160658

Merged
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
RalfJung:trivial-abi
Aug 8, 2026
Merged

miri: implement more restrictive trivial-ABI checks#160658
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
RalfJung:trivial-abi

Conversation

@RalfJung

@RalfJungRalfJung commented Aug 6, 2026

Copy link
Copy Markdown
Member

This implements the rules from #157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.

r? @oli-obk

  • I did not use an LLM to create a change in this PR.
  • I used an LLM to create a change in this PR, and I have explained below how it was used.

@rustbot

Copy link
Copy Markdown
Collaborator

Some changes occurred to the CTFE machinery

cc @oli-obk, @lcnr

miri is developed in its own repository. If the Miri part of this change can be broken out, consider making this change to rust-lang/miri instead. However, if Miri needs adjusting for rustc changes, just ignore this message.

cc @rust-lang/miri

Some changes occurred to the CTFE / Miri interpreter

cc @rust-lang/miri

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 6, 2026
@RalfJung
RalfJungforce-pushed the trivial-abi branch 2 times, most recently from b9f4523 to 2c388deCompareAugust 6, 2026 21:35

@oli-obkoli-obk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@rust-bors

rust-borsBot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 2c388de has been approved by oli-obk

It is now in the queue for this repository.

@rust-borsrust-borsBot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 7, 2026
jhpratt added a commit to jhpratt/rust that referenced this pull request Aug 7, 2026
miri: implement more restrictive trivial-ABI checks
This implements the rules from rust-lang#157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
@jhprattjhpratt mentioned this pull request Aug 7, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

💔 I suspect this PR failed tests as part of a rollup
@bors r-

After fixing the problem, consider running a try job for the failed job before re-approving.

Link to failure: #160721 (comment)

@rust-borsrust-borsBot 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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 7, 2026
@rust-bors

rust-borsBot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

This pull request was unapproved.

This PR was contained in a rollup (#160721), which was unapproved.

View changes since this unapproval

@RalfJung

Copy link
Copy Markdown
MemberAuthor

How did that not show up in CI in this PR...? Strange.

@RalfJung

Copy link
Copy Markdown
MemberAuthor

@bors r=oli-obk

@rust-bors

rust-borsBot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 179b9df has been approved by oli-obk

It is now in the queue for this repository.

@rust-borsrust-borsBot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Aug 8, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 8, 2026
miri: implement more restrictive trivial-ABI checks
This implements the rules from rust-lang#157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
This was referenced Aug 8, 2026
rust-borsBot pushed a commit that referenced this pull request Aug 8, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- #160336 (Move attributes out of rustc_hir)
- #160715 (ignore tests with the GCC backend if we can't find `libgccjit.so` for the target)
- #157609 (fix: build-std on 32 bit arm with 64 bit time)
- #160613 (Add regression test for unsized non-last struct field with overlapping impls)
- #160658 (miri: implement more restrictive trivial-ABI checks)
- #160704 (sort lint names in lint pass declarations)
- #160707 (Add regression test for higher ranked fn pointer impl not general enough)
- #160713 (Add regression test for #135287)
- #160720 (triagebot: add ubiratan to infra-ci)
- #160747 (rustc_errors: remove unused code)
- #160751 (Add regression test for incremental borrowck ICE with generic const exprs)
- #160753 (rustc_lint: remove unused rustc_attrs feature)
Failed merges:
- #158835 (rustc_passes: lint unused `#[path]` attributes on inline modules)
@rust-bors
rust-borsBot merged commit 945feb0 into rust-lang:mainAug 8, 2026
13 checks passed
@rustbotrustbot added this to the 1.99.0 milestone Aug 8, 2026
rust-timer added a commit that referenced this pull request Aug 8, 2026
Rollup merge of #160658 - RalfJung:trivial-abi, r=oli-obk
miri: implement more restrictive trivial-ABI checks
This implements the rules from #157973 in Miri. We unfortunately have to reject some code that we thought was okay. Let's land this in Miri ahead of anything official also to see if there's any major breakage from that.
r? @oli-obk
@Jules-Bertholet

Jules-Bertholet commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

#157973 adresses only types available on stable. When considering unstable types, unsafe binders and pattern types should also be considered to have trivial ABI if wrapping a type that does.

@RalfJung

Copy link
Copy Markdown
MemberAuthor

That makes sense, thanks: #160775

pullBot pushed a commit to LeeeeeeM/miri that referenced this pull request Aug 9, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- rust-lang/rust#160336 (Move attributes out of rustc_hir)
- rust-lang/rust#160715 (ignore tests with the GCC backend if we can't find `libgccjit.so` for the target)
- rust-lang/rust#157609 (fix: build-std on 32 bit arm with 64 bit time)
- rust-lang/rust#160613 (Add regression test for unsized non-last struct field with overlapping impls)
- rust-lang/rust#160658 (miri: implement more restrictive trivial-ABI checks)
- rust-lang/rust#160704 (sort lint names in lint pass declarations)
- rust-lang/rust#160707 (Add regression test for higher ranked fn pointer impl not general enough)
- rust-lang/rust#160713 (Add regression test for rust-lang/rust#135287)
- rust-lang/rust#160720 (triagebot: add ubiratan to infra-ci)
- rust-lang/rust#160747 (rustc_errors: remove unused code)
- rust-lang/rust#160751 (Add regression test for incremental borrowck ICE with generic const exprs)
- rust-lang/rust#160753 (rustc_lint: remove unused rustc_attrs feature)
Failed merges:
- rust-lang/rust#158835 (rustc_passes: lint unused `#[path]` attributes on inline modules)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 11, 2026
…t, r=oli-obk
interpret: treat pattern and unsafe-binder as ABI-transparent
This was suggested by @Jules-Bertholet in rust-lang#160658. I didn't follow all the discussions for those types. Making them transparent makes sense to me though we should make sure this is explicitly discussed as a stable guarantee when it comes to stabilizing those types.
Tracking issues: rust-lang#123646, rust-lang#130516.
r? @oli-obk
rust-timer added a commit that referenced this pull request Aug 11, 2026
Rollup merge of #160775 - RalfJung:pattern-unsafe-transparent, r=oli-obk
interpret: treat pattern and unsafe-binder as ABI-transparent
This was suggested by @Jules-Bertholet in #160658. I didn't follow all the discussions for those types. Making them transparent makes sense to me though we should make sure this is explicitly discussed as a stable guarantee when it comes to stabilizing those types.
Tracking issues: #123646, #130516.
r? @oli-obk
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant 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.

5 participants

@RalfJung@rustbot@JonathanBrouwer@Jules-Bertholet@oli-obk