about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2024-02-23Remove unhelpful `DEFINE_INTERNAL` from filecheck flagsZalathar-3/+2
This define was copied over from the run-make version of the test, but doesn't seem to serve any useful purpose.
2024-02-23Convert `tests/run-make/instrument-coverage` to an ordinary codegen testZalathar-152/+121
This test was already very close to being an ordinary codegen test, except that it needed some extra logic to set a few variables based on (target) platform characteristics. Now that we have support for `//@ filecheck-flags:`, we can instead set those variables using the normal test revisions mechanism.
2024-02-23Move existing coverage codegen tests into a subdirectoryZalathar-0/+0
This makes room for migrating over `tests/run-make/instrument-coverage`, without increasing the number of top-level items in the codegen test directory.
2024-02-23Allow tests to specify a `//@ filecheck-flags:` headerZalathar-5/+22
Any flags specified here will be passed to LLVM's `filecheck` tool, in tests that use that tool.
2024-02-23Simplify existing code for setting `filecheck` flagsZalathar-11/+17
This removes a version check for LLVM >=13, and specifies prefixes as a series of independent `--check-prefix` flags instead of a single `--check-prefixes`.
2024-02-23Add some simple meta-tests for the handling of `filecheck` flagsZalathar-0/+31
2024-02-22Auto merge of #119989 - lcnr:sub_relations-bye-bye, r=compiler-errorsbors-455/+409
remove `sub_relations` from the `InferCtxt` While doing so, I tried to remove the `delay_span_bug` in `rematch_impl` again, which lead me to discover another `freshen` bug, fixing that one in the second commit. See commit descriptions for the reasoning behind each change. r? `@compiler-errors`
2024-02-22Auto merge of #121469 - matthiaskrgr:rollup-oaoxuo2, r=matthiaskrgrbors-485/+690
Rollup of 8 pull requests Successful merges: - #120598 (No need to `validate_alias_bound_self_from_param_env` in `assemble_alias_bound_candidates`) - #121386 (test that we do not support higher-ranked regions in opaque type inference) - #121393 (match lowering: Introduce a `TestCase` enum to replace most matching on `PatKind`) - #121401 (Fix typo in serialized.rs) - #121427 (Fix panic when compiling `Rocket`.) - #121439 (Fix typo in metadata.rs doc comment) - #121441 (`DefId` to `LocalDefId`) - #121452 (Add new maintainers to nto-qnx.md) r? `@ghost` `@rustbot` modify labels: rollup
2024-02-22change error messages to be incorrect, but more helpfullcnr-15/+15
2024-02-22Rollup merge of #121452 - jonathanpallant:patch-1, r=AmanieuMatthias Krüger-0/+2
Add new maintainers to nto-qnx.md [Ferrous Systems](https://ferrous-systems.com) are volunteering myself and `@japaric` as co-maintainers of the QNX targets.
2024-02-22Rollup merge of #121441 - lcnr:typesystem-cleanup, r=compiler-errorsMatthias Krüger-3/+4
`DefId` to `LocalDefId`
2024-02-22Rollup merge of #121439 - jrudolph:patch-1, r=bjorn3Matthias Krüger-1/+1
Fix typo in metadata.rs doc comment
2024-02-22Rollup merge of #121427 - nnethercote:fix-Rocket, r=oli-obkMatthias Krüger-11/+13
Fix panic when compiling `Rocket`. This panic was reported [here](https://github.com/rust-lang/rust/pull/120576#issuecomment-1957515484). r? ``@oli-obk``
2024-02-22Rollup merge of #121401 - eltociear:patch-25, r=nnethercoteMatthias Krüger-1/+1
Fix typo in serialized.rs accomodate -> accommodate
2024-02-22Rollup merge of #121393 - Nadrieril:match-lowering-testcase, r=matthewjasperMatthias Krüger-260/+212
match lowering: Introduce a `TestCase` enum to replace most matching on `PatKind` Introduces `TestCase` that represents the specific outcome of a test. It complements `TestKind` which represents a test. In `MatchPair::new()` we select the appropriate `TestCase` for the pattern, and after that we almost never have to inspect the pattern directly during match lowering. Together with https://github.com/rust-lang/rust/pull/120904, this makes `MatchPair` into a standalone abstraction that hides the details of `thir::Pat`. This will become even truer in the next PR where I make `TestCase` handle or patterns. This opens the door to a lot of future simplifications. r? `@matthewjasper`
2024-02-22Rollup merge of #121386 - oli-obk:no_higher_ranked_opaques, r=lcnrMatthias Krüger-34/+451
test that we do not support higher-ranked regions in opaque type inference We already do all the right checks in `check_opaque_type_parameter_valid`, and we have done so since at least 2 years. I collected the tests from https://github.com/rust-lang/rust/pull/116935 and https://github.com/rust-lang/rust/pull/100503 and added some more cc https://github.com/rust-lang/rust/issues/96146 r? `@lcnr`
2024-02-22Rollup merge of #120598 - compiler-errors:no-rigid-check, r=lcnrMatthias Krüger-175/+6
No need to `validate_alias_bound_self_from_param_env` in `assemble_alias_bound_candidates` We already fully normalize the self type before we reach `assemble_alias_bound_candidates`, so there's no reason to double check that a projection is truly rigid by checking param-env bounds. I think this is also blocked on us making sure to always normalize opaques: #120549. r? lcnr
2024-02-22Remove some annotations that just specify the defaultOli Scherer-17/+13
2024-02-22do not use <: in subtyping overflow msglcnr-22/+35
2024-02-22overflow errors: change source to a concrete enumlcnr-91/+126
2024-02-22Auto merge of #121370 - jieyouxu:migrate-compiletest-directives, r=oli-obkbors-4845/+4882
Migrate compiletest to use `ui_test`-style `//@` directives ## Preface There's an on-going effort to rewrite parts of or the entirety of compiletest (<https://github.com/rust-lang/compiler-team/issues/536>). A step towards this involve migrating compiletest tests to use the [`ui_test`](https://github.com/oli-obk/ui_test) framework, which involves changing compiletest directives in `// <directive-name>` style to `ui_test` `//@ <directive-name>` style (https://github.com/rust-lang/compiler-team/issues/512). This PR aims to implement the directive-style change from `//` to `//`@`` for the remaining non-"ui" test suite tests. ## Key Changes 1. All `tests/` tests now use `//`@`` directives. 2. Compiletest only accepts `//`@`` and issues an error if an old-style directive is detected. 3. `// ignore-tidy` and `// ignore-tidy-*` are considered tidy directives and are ignored by compiletest header parsing. ## Diff Generation The diff is generated by: - Collecting directives from `tests/` via hijacking compiletest to emit successfully parsed directive lines. - Using a migration tool (<https://github.com/jieyouxu/compiletest-ui_test-header-migration/tree/master>) to replace `//` directives in compiletest tests with `//`@`.` ### Reproduction Steps 0. Delete the temporary file `$RUSTC_REPO_PATH/build/<target_triple>/test/__directive_lines.txt`, if the collection script was previously ran. 1. Use the <https://github.com/jieyouxu/rust/tree/collect-test-directives> collect-test-directives script, which outputs a temporary file recording headers occuring in each compiletest test. - You need to checkout this branch: `git checkout collect-test-directives`. - This needs to be rebased on latest master to ensure up-to-date test directives can be collected. - You need to run `./x test` on each of the `test/*` subfolders once: ```bash ./x test tests/assembly/ --stage 1 --force-rerun ./x test tests/codegen/ --stage 1 --force-rerun ./x test tests/codegen-units/ --stage 1 --force-rerun ./x test tests/coverage/ --stage 1 --force-rerun ./x test tests/coverage-run-rustdoc/ --stage 1 --force-rerun ./x test tests/debuginfo/ --stage 1 --force-rerun ./x test tests/incremental/ --stage 1 --force-rerun ./x test tests/mir-opt/ --stage 1 --force-rerun ./x test tests/pretty/ --stage 1 --force-rerun ./x test tests/run-make/ --stage 1 --force-rerun ./x test tests/run-make-fulldeps/ --stage 1 --force-rerun ./x test tests/run-pass-valgrind/ --stage 1 --force-rerun ./x test tests/rustdoc/ --stage 1 --force-rerun TARGET=<target-triple> ./x test tests/rustdoc-gui/ --stage 1 --force-rerun ./x test tests/rustdoc-js/ --stage 1 --force-rerun ./x test tests/rustdoc-js-std/ --stage 1 --force-rerun ./x test tests/rustdoc-json/ --stage 1 --force-rerun ./x test tests/rustdoc-ui/ --stage 1 --force-rerun ./x test tests/ui/ --stage 1 --force-rerun ./x test tests/ui-fulldeps/ --stage 1 --force-rerun ``` 2. Checkout the `migrate-compiletest-directives` branch. 3. Run the migration tool <https://github.com/jieyouxu/compiletest-ui_test-header-migration>. 4. Check that the migration at least does not cause test failures if you change compiletest to accept `//`@`` directives only. This is also required if the test outputs somehow need to be blessed. - `RUSTC_TEST_FAIL_FAST=1 ./x test tests/<secondary-directory> --stage 1 --bless` 5. Confirm that there is no difference after running the migration tool when you are on the `migrate-compiletest-directives` branch. ## Follow Up Work - [ ] Adjust rustc-dev-guide docs for compiletest directives (this time for all the other suites and modes). <https://github.com/rust-lang/rustc-dev-guide/pull/1895>.
2024-02-22freshen: resolve root varslcnr-97/+103
Without doing so we use the same candidate cache entry for `?0: Trait<?1>` and `?0: Trait<?0>`. These goals are different and we must not use the same entry for them.
2024-02-22remove `sub_relations` from infcx, recompute in diagnosticslcnr-280/+180
we don't track them when canonicalizing or when freshening, resulting in instable caching in the old solver, and issues when instantiating query responses in the new one.
2024-02-22Re-bless tests/pretty许杰友 Jieyou Xu (Joe)-38/+38
2024-02-22[AUTO_GENERATED] Migrate compiletest to use `ui_test`-style `//@` directives许杰友 Jieyou Xu (Joe)-4775/+4775
2024-02-22Ignore tidy linelength许杰友 Jieyou Xu (Joe)-0/+1
2024-02-22Update tidy target_specific_tests to account for `//@` directives许杰友 Jieyou Xu (Joe)-1/+1
2024-02-22Update tidy target_policy to account for `//@` directives许杰友 Jieyou Xu (Joe)-1/+1
2024-02-22Update compiletest to only accept `//@` directives许杰友 Jieyou Xu (Joe)-30/+13
2024-02-22Update list of known directive names for diagnostics许杰友 Jieyou Xu (Joe)-0/+52
2024-02-22Fix tests/assembly/stack-protector/stack-protector-target-support.rs许杰友 Jieyou Xu (Joe)-1/+2
Previously the test seems to not actually test redox.
2024-02-22Auto merge of #121372 - clubby789:test-all-tests, r=onur-ozkanbors-6/+51
Make `x test tests` work Fixes #97314 This makes `x test tests` work, and be roughly equivalent to `x test tests/*`. The `--dry-run` output is identical, except for errors on the non-test items in `tests` and a couple of things being in a different order (where path != struct name). This probably needs a test, but I'm not sure of the best way to do it.
2024-02-22`report_mismatch` did not actually report anymoreOli Scherer-11/+15
2024-02-22Preserve the `Span` from `prove_predicate` all the way to registering opaque ↵Oli Scherer-3/+19
types
2024-02-22Add new maintainers to nto-qnx.mdJonathan Pallant-0/+2
Ferrous Systems are volunteering myself and Jorge as co-maintainers of the QNX targets.
2024-02-22Auto merge of #121309 - Nilstrieb:inline-all-the-fallbacks, r=oli-obkbors-0/+25
Make intrinsic fallback bodies cross-crate inlineable This change was prompted by the stage1 compiler spending 4% of its time when compiling the polymorphic-recursion MIR opt test in `unlikely`. Intrinsic fallback bodies like `unlikely` should always be inlined, it's very silly if they are not. To do this, we enable the fallback bodies to be cross-crate inlineable. Not that this matters for our workloads since the compiler never actually _uses_ the "fallback bodies", it just uses whatever was cfg(bootstrap)ped, so I've also added `#[inline]` to those. See the comments for more information. r? oli-obk
2024-02-22Auto merge of #121225 - RalfJung:simd-extract-insert-const-idx, ↵bors-89/+37
r=oli-obk,Amanieu require simd_insert, simd_extract indices to be constants As discussed in https://github.com/rust-lang/rust/issues/77477 (see in particular [here](https://github.com/rust-lang/rust/issues/77477#issuecomment-703149102)). This PR doesn't touch codegen yet -- the first step is to ensure that the indices are always constants; the second step is to then make use of this fact in backends. Blocked on https://github.com/rust-lang/stdarch/pull/1530 propagating to the rustc repo.
2024-02-22Avoid emitting type mismatches against `{type error}`Oli Scherer-84/+55
2024-02-22`DefId` to `LocalDefId`lcnr-3/+4
2024-02-22Fix typo in metadata.rs doc commentJohannes Rudolph-1/+1
2024-02-22Auto merge of #121129 - nnethercote:codegen-Diags, r=estebankbors-56/+81
Improve codegen diagnostic handling Clarify the workings of the temporary `Diagnostic` type used to send diagnostics from codegen threads to the main thread. r? `@estebank`
2024-02-22Auto merge of #117174 - Ayush1325:uefi-stdio-improve, r=workingjubileebors-37/+94
Improve UEFI stdio Fixed some things suggested in last PR: #116207 cc `@dvdhrm` cc `@nicholasbishop`
2024-02-22Auto merge of #121223 - RalfJung:simd-intrinsics, r=Amanieubors-46/+98
intrinsics::simd: add missing functions, avoid UB-triggering fast-math Turns out stdarch declares a bunch more SIMD intrinsics that are still missing from libcore. I hope I got the docs and in particular the safety requirements right for these "unordered" and "nanless" intrinsics. Many of these are unused even in stdarch, but they are implemented in the codegen backend, so we may as well list them here. r? `@Amanieu` Cc `@calebzulawski` `@workingjubilee`
2024-02-22Make some `IntoDiagnostic` impls generic.Nicholas Nethercote-10/+12
PR #119097 made the decision to make all `IntoDiagnostic` impls generic, because this allowed a bunch of nice cleanups. But four hand-written impls were unintentionally overlooked. This commit makes them generic.
2024-02-22Fix panic when compiling `Rocket`.Nicholas Nethercote-1/+1
`Rustc::emit_diagnostic` reconstructs a diagnostic passed in from the macro machinery. Currently it uses the type `DiagnosticBuilder<'_, ErrorGuaranteed>`, which is incorrect, because the diagnostic might be a warning. And if it is a warning, because of the `ErrorGuaranteed` we end up calling into `emit_producing_error_guaranteed` and the assertion within that function (correctly) fails because the level is not an error level. The fix is simple: change the type to `DiagnosticBuilder<'_, ()>`. Using `()` works no matter what the diagnostic level is, and we don't need an `ErrorGuaranteed` here. The panic was reported in #120576.
2024-02-22Auto merge of #118634 - Jules-Bertholet:box-allocator-static, r=Amanieubors-9/+3
Remove useless `'static` bounds on `Box` allocator #79327 added `'static` bounds to the allocator parameter for various `Box` + `Pin` APIs to ensure soundness. But it was a bit overzealous, some of the bounds aren't actually needed.
2024-02-22Remove `SharedEmitterMessage::AbortIfErrors`.Nicholas Nethercote-5/+1
It's always paired wth `SharedEmitterMessage::Diagnostic`, so the two can be merged.
2024-02-22Overhaul `rustc_codegen_ssa::back::write::Diagnostic`.Nicholas Nethercote-24/+60
- Make it more closely match `rustc_errors::Diagnostic`, by making the field names match, and adding `children`, which requires adding `rustc_codegen_ssa::back::write::Subdiagnostic`. - Check that we aren't missing important info when converting diagnostics. - Add better comments. - Tweak `rustc_errors::Diagnostic::replace_args` so that we don't need to do any cloning when converting diagnostics.
2024-02-22Overhaul `Diagnostic` args.Nicholas Nethercote-31/+24
First, introduce a typedef `DiagnosticArgMap`. Second, make the `args` field public, and remove the `args` getter and `replace_args` setter. These were necessary previously because the getter had a `#[allow(rustc::potential_query_instability)]` attribute, but that was removed in #120931 when the args were changed from `FxHashMap` to `FxIndexMap`. (All the other `Diagnostic` fields are public.)
2024-02-22Auto merge of #121415 - matthiaskrgr:rollup-o9zzet4, r=matthiaskrgrbors-449/+452
Rollup of 8 pull requests Successful merges: - #121206 (Top level error handling) - #121261 (coverage: Remove `pending_dups` from the span refiner) - #121336 (triagebot: add queue notifications) - #121373 (Consistently refer to a test's `revision` instead of `cfg`) - #121391 (never patterns: Fix liveness analysis in the presence of never patterns) - #121392 (Unify dylib loading between proc macros and codegen backends) - #121399 (Solaris linker does not support --strip-debug) - #121406 (Add a couple tests) r? `@ghost` `@rustbot` modify labels: rollup