compiletest: add implied needs-target-std for codegen mode tests unless annotated with #![no_std]/#![no_core]#151294
Merged
rust-bors[bot] merged 1 commit intorust-lang:mainfrom Jan 26, 2026
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A
codegenmode test (such ascodegen-llvmtest suite) will now by default have an implied//@ needs-target-stddirective, unless the test explicitly has an#![no_std]/#![no_core]attribute which disables this behavior.#![no_std]/#![no_core]and//@ needs-target-std, the explicit//@ needs-target-stddirective will cause the test to be ignored for targets that do not support std still.This is to make it easier to test out-of-tree targets / custom targets (and targets not tested in r-l/r CI) without requiring target maintainers to do a bunch of manual
//@ needs-target-stdbusywork.Context: #t-compiler/help > `compiletest` cannot find `core` library for target != host
Implementation remarks
This is an alternative version of #150672, with some differences:
needs-target-stdbehavior to allcodegentest mode tests.codegen-rundirectives. Both are of course hacks, but at least they're together next to each other.