Remaining regression-harness limitation
#484/#486 repair the complete core64 suite and the LoongArch-specific tests. The broader unfiltered single-backend codegen harness still contains tests that select disabled targets or implicitly use the host target.
On #486 head 6fb6ed7, this command reproduces the remaining limitation:
cargo test --locked --no-default-features --features llvm-target-loongarch --test codegen_regressions --jobs 2
The local audit reported 13 passed / 44 failed. For example, std_net_compiles_for_every_supported_socket_abi still includes X86/AArch64/RISCV entries, and host-oriented semantic/driver tests default to the host triple. The LoongArch compiler correctly rejects those unavailable targets. The existing isolated CI lane intentionally runs only loongarch64_; that scoped command passes all four regressions, including opt-in Clang/LLD/QEMU interoperability.
Contribution scope
Make the harness usable with every advertised individual LLVM target feature (x86, aarch64, riscv, loongarch, wasm) without relying on ad hoc name filters. This is broader than the original core64/LoongArch separation fix in #484 and should be reviewed as its own refactor.
- Classify architecture-specific versus backend-independent tests.
- Gate architecture-specific tests and helper imports by the matching feature.
- Build mixed target lists from enabled backends, retaining all currently enabled assertions.
- Give backend-independent driver checks an available explicit target instead of the host default.
- Keep external C/ABI execution requirements explicit; running no tests is not a success criterion.
Acceptance
Start in tests/codegen_regressions.rs, Cargo.toml and .github/workflows/rust.yml. tests/frontend_regressions.rs::frontend_target and projected_deref_preserves_pointer_storage_types demonstrate selecting an enabled target. This touches many target/ABI assumptions and is deliberately not labeled a good first issue.
Remaining regression-harness limitation
#484/#486 repair the complete core64 suite and the LoongArch-specific tests. The broader unfiltered single-backend codegen harness still contains tests that select disabled targets or implicitly use the host target.
On #486 head
6fb6ed7, this command reproduces the remaining limitation:cargo test --locked --no-default-features --features llvm-target-loongarch --test codegen_regressions --jobs 2The local audit reported 13 passed / 44 failed. For example,
std_net_compiles_for_every_supported_socket_abistill includes X86/AArch64/RISCV entries, and host-oriented semantic/driver tests default to the host triple. The LoongArch compiler correctly rejects those unavailable targets. The existing isolated CI lane intentionally runs onlyloongarch64_; that scoped command passes all four regressions, including opt-in Clang/LLD/QEMU interoperability.Contribution scope
Make the harness usable with every advertised individual LLVM target feature (
x86,aarch64,riscv,loongarch,wasm) without relying on ad hoc name filters. This is broader than the original core64/LoongArch separation fix in #484 and should be reviewed as its own refactor.Acceptance
Start in
tests/codegen_regressions.rs,Cargo.tomland.github/workflows/rust.yml.tests/frontend_regressions.rs::frontend_targetandprojected_deref_preserves_pointer_storage_typesdemonstrate selecting an enabled target. This touches many target/ABI assumptions and is deliberately not labeled a good first issue.