about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/assembly-llvm/x86_64-mcount.rs24
-rw-r--r--tests/codegen-llvm/atomicptr.rs1
-rw-r--r--tests/debuginfo/basic-stepping.rs1
-rw-r--r--tests/rustdoc-gui/links-color.goml6
-rw-r--r--tests/rustdoc-gui/module-items-font.goml9
-rw-r--r--tests/rustdoc-gui/search-result-color.goml11
-rw-r--r--tests/rustdoc-gui/sidebar-links-color.goml20
-rw-r--r--tests/rustdoc-gui/src/test_docs/lib.rs4
-rw-r--r--tests/rustdoc-json/doc_attribute.rs18
-rw-r--r--tests/rustdoc-ui/doc-attribute-unsupported.rs7
-rw-r--r--tests/rustdoc-ui/doc-attribute-unsupported.stderr10
-rw-r--r--tests/rustdoc-ui/invalid-attribute.rs10
-rw-r--r--tests/rustdoc-ui/invalid-attribute.stderr18
-rw-r--r--tests/rustdoc/doc-attribute.rs24
-rw-r--r--tests/ui-fulldeps/internal-lints/import-of-type-ir-traits.rs2
-rw-r--r--tests/ui/array-slice-vec/fixed-length-vector-pattern-matching-7784.rs (renamed from tests/ui/array-slice-vec/pattern-matching-fixed-length-vectors-7784.rs)0
-rw-r--r--tests/ui/array-slice-vec/vector-slice-matching-8498.rs (renamed from tests/ui/array-slice-vec/matching-on-vector-slice-option-8498.rs)0
-rw-r--r--tests/ui/binding/match-with-at-binding-8391.rs (renamed from tests/ui/pattern/match-with-at-binding-8391.rs)0
-rw-r--r--tests/ui/binding/method-call-nonsensical-pattern-binding-7092.rs (renamed from tests/ui/issues/issue-7092.rs)1
-rw-r--r--tests/ui/binding/method-call-nonsensical-pattern-binding-7092.stderr (renamed from tests/ui/issues/issue-7092.stderr)2
-rw-r--r--tests/ui/binding/ref-pattern-drop-behavior-8860.rs (renamed from tests/ui/pattern/ref-in-function-parameter-patterns-8860.rs)0
-rw-r--r--tests/ui/binop/struct-field-generic-type-binary-assignment-error-6738.rs (renamed from tests/ui/issues/issue-6738.rs)1
-rw-r--r--tests/ui/binop/struct-field-generic-type-binary-assignment-error-6738.stderr (renamed from tests/ui/issues/issue-6738.stderr)2
-rw-r--r--tests/ui/borrowck/auxiliary/aux-5518.rs (renamed from tests/ui/issues/auxiliary/issue-5518.rs)0
-rw-r--r--tests/ui/borrowck/borrowed-pointer-in-struct-5884.rs (renamed from tests/ui/issues/issue-5884.rs)1
-rw-r--r--tests/ui/borrowck/incorrect-loan-error-on-local-update-5550.rs (renamed from tests/ui/issues/issue-5550.rs)1
-rw-r--r--tests/ui/borrowck/struct-with-reference-to-trait-5708.rs (renamed from tests/ui/issues/issue-5708.rs)3
-rw-r--r--tests/ui/borrowck/trait-method-lifetime-substitution-5518.rs7
-rw-r--r--tests/ui/box/box-patterns-feature-usage-6557.rs (renamed from tests/ui/issues/issue-6557.rs)1
-rw-r--r--tests/ui/cast/associated-type-bounds-cast-54094.rs (renamed from tests/ui/issues/issue-54094.rs)1
-rw-r--r--tests/ui/cast/owned-struct-to-trait-cast-6318.rs (renamed from tests/ui/issues/issue-6318.rs)1
-rw-r--r--tests/ui/closures/closure-mut-argument-6153.rs (renamed from tests/ui/issues/issue-6153.rs)2
-rw-r--r--tests/ui/codegen/matrix-row-swap-54462.rs (renamed from tests/ui/issues/issue-54462-mutable-noalias-correctness.rs)1
-rw-r--r--tests/ui/codegen/static-array-comparison-7012.rs (renamed from tests/ui/issues/issue-7012.rs)1
-rw-r--r--tests/ui/coercion/coerce-mut-trait-object-8248.rs (renamed from tests/ui/coercion/mut-trait-coercion-8248.rs)0
-rw-r--r--tests/ui/coercion/coerce-mut-trait-object-8248.stderr (renamed from tests/ui/coercion/mut-trait-coercion-8248.stderr)2
-rw-r--r--tests/ui/collections/vecdeque-append-operation-54477.rs (renamed from tests/ui/issues/issue-54477-reduced-2.rs)1
-rw-r--r--tests/ui/cross-crate/auxiliary/aux-7178.rs (renamed from tests/ui/issues/auxiliary/issue-7178.rs)0
-rw-r--r--tests/ui/cross-crate/static-method-returning-self-with-generics-7178.rs9
-rw-r--r--tests/ui/cross-crate/static-with-cross-crate-regions-8259.rs (renamed from tests/ui/cross-crate/static-regions-in-cross-crate-8259.rs)0
-rw-r--r--tests/ui/cross-crate/tuple-struct-cross-crate-7899.rs10
-rw-r--r--tests/ui/enum/enum-referred-by-submodule-5900.rs (renamed from tests/ui/issues/issue-5900.rs)1
-rw-r--r--tests/ui/enum/enum-with-generic-parameter-5997.rs (renamed from tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997.rs)1
-rw-r--r--tests/ui/enum/match-either-enum-variants-6117.rs (renamed from tests/ui/issues/issue-6117.rs)1
-rw-r--r--tests/ui/feature-gates/feature-gate-rustdoc_internals.rs4
-rw-r--r--tests/ui/feature-gates/feature-gate-rustdoc_internals.stderr16
-rw-r--r--tests/ui/function-pointer/function-pointer-comparison-54696.rs (renamed from tests/ui/issues/issue-54696.rs)1
-rw-r--r--tests/ui/generics/enum-definition-with-outer-generic-parameter-5997.rs (renamed from tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-enum.rs)1
-rw-r--r--tests/ui/generics/enum-definition-with-outer-generic-parameter-5997.stderr (renamed from tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-enum.stderr)2
-rw-r--r--tests/ui/issues/issue-54410.rs8
-rw-r--r--tests/ui/issues/issue-54410.stderr12
-rw-r--r--tests/ui/issues/issue-5518.rs7
-rw-r--r--tests/ui/issues/issue-5844.rs7
-rw-r--r--tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-struct.rs10
-rw-r--r--tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-struct.stderr13
-rw-r--r--tests/ui/issues/issue-6344-match.rs18
-rw-r--r--tests/ui/issues/issue-7178.rs9
-rw-r--r--tests/ui/lifetimes/dyn-trait-function-pointer-53419.rs (renamed from tests/ui/issues/issue-53419.rs)1
-rw-r--r--tests/ui/lifetimes/static-bound-fulfillment-with-pointer-7268.rs (renamed from tests/ui/issues/issue-7268.rs)1
-rw-r--r--tests/ui/limits/huge-enum.full-debuginfo.stderr (renamed from tests/ui/limits/huge-enum.stderr)2
-rw-r--r--tests/ui/limits/huge-enum.no-debuginfo.stderr8
-rw-r--r--tests/ui/limits/huge-enum.rs8
-rw-r--r--tests/ui/loops/unreachable-while-loop-5741.rs (renamed from tests/ui/issues/issue-5741.rs)1
-rw-r--r--tests/ui/macros/macro-variable-declaration-with-bounds-5554.rs (renamed from tests/ui/issues/issue-5554.rs)2
-rw-r--r--tests/ui/macros/macro-variable-unused-reporting-5718.rs (renamed from tests/ui/issues/issue-5718.rs)1
-rw-r--r--tests/ui/match/mismatched-types-in-match-5358.rs (renamed from tests/ui/issues/issue-5358-1.rs)9
-rw-r--r--tests/ui/match/mismatched-types-in-match-5358.stderr (renamed from tests/ui/issues/issue-5358-1.stderr)3
-rw-r--r--tests/ui/match/mismatched-types-in-match-7867.rs (renamed from tests/ui/match/mismatched-types-in-match-pattern-7867.rs)0
-rw-r--r--tests/ui/match/mismatched-types-in-match-7867.stderr (renamed from tests/ui/match/mismatched-types-in-match-pattern-7867.stderr)2
-rw-r--r--tests/ui/methods/trait-method-resolution-7575.rs (renamed from tests/ui/methods/trait-method-self-param-error-7575.rs)0
-rw-r--r--tests/ui/methods/trait-method-resolution-7575.stderr (renamed from tests/ui/methods/trait-method-self-param-error-7575.stderr)2
-rw-r--r--tests/ui/modules/pub-use-module-alias-5950.rs (renamed from tests/ui/issues/issue-5950.rs)2
-rw-r--r--tests/ui/modules/use-statement-duplicate-check-7663.rs (renamed from tests/ui/resolve/module-import-resolution-7663.rs)0
-rw-r--r--tests/ui/numeric/type-limit-comparisons-6130.rs (renamed from tests/ui/issues/issue-6130.rs)1
-rw-r--r--tests/ui/parser/bad-lit-suffixes.rs8
-rw-r--r--tests/ui/parser/bad-lit-suffixes.stderr40
-rw-r--r--tests/ui/parser/partial-eq-trait-bound-5572.rs (renamed from tests/ui/issues/issue-5572.rs)1
-rw-r--r--tests/ui/privacy/auxiliary/iss-6919.rs (renamed from tests/ui/issues/auxiliary/iss.rs)0
-rw-r--r--tests/ui/privacy/deref-separate-compile-unit-6919.rs (renamed from tests/ui/issues/issue-6919.rs)4
-rw-r--r--tests/ui/privacy/pub-restricted-path-usage-55376.rs (renamed from tests/ui/issues/issue-55376.rs)1
-rw-r--r--tests/ui/repr/packed-struct-with-enum-53728.rs (renamed from tests/ui/issues/issue-53728.rs)1
-rw-r--r--tests/ui/resolve/duplicate-name-in-module-6936.rs (renamed from tests/ui/issues/issue-6936.rs)2
-rw-r--r--tests/ui/resolve/duplicate-name-in-module-6936.stderr (renamed from tests/ui/issues/issue-6936.stderr)8
-rw-r--r--tests/ui/resolve/unit-like-struct-masks-constant-7044.rs (renamed from tests/ui/issues/issue-7044.rs)1
-rw-r--r--tests/ui/resolve/unit-like-struct-masks-constant-7044.stderr (renamed from tests/ui/issues/issue-7044.stderr)2
-rw-r--r--tests/ui/sanitizer/cfi/no_builtins.rs22
-rw-r--r--tests/ui/specialization/trait-specialization-default-methods-55380.rs (renamed from tests/ui/issues/issue-55380.rs)1
-rw-r--r--tests/ui/specialization/trait-specialization-default-methods-55380.stderr (renamed from tests/ui/issues/issue-55380.stderr)2
-rw-r--r--tests/ui/static/global-variable-promotion-error-7364.rs (renamed from tests/ui/issues/issue-7364.rs)1
-rw-r--r--tests/ui/static/global-variable-promotion-error-7364.stderr (renamed from tests/ui/issues/issue-7364.stderr)4
-rw-r--r--tests/ui/static/static-list-initialization-5917.rs (renamed from tests/ui/issues/issue-5917.rs)1
-rw-r--r--tests/ui/static/static-struct-initialization-5688.rs (renamed from tests/ui/issues/issue-5688.rs)1
-rw-r--r--tests/ui/structs/auxiliary/aux-8044.rs (renamed from tests/ui/structs-enums/auxiliary/aux-8044.rs)0
-rw-r--r--tests/ui/structs/btree-struct-usage-8044.rs (renamed from tests/ui/structs-enums/struct-and-enum-usage-8044.rs)0
-rw-r--r--tests/ui/structs/destructuring-struct-with-dtor-6344.rs (renamed from tests/ui/issues/issue-6344-let.rs)1
-rw-r--r--tests/ui/structs/nonexistent-struct-field-error-5439.rs (renamed from tests/ui/issues/issue-5439.rs)1
-rw-r--r--tests/ui/structs/nonexistent-struct-field-error-5439.stderr (renamed from tests/ui/issues/issue-5439.stderr)2
-rw-r--r--tests/ui/traits/dynamic-dispatch-trait-objects-5666.rs (renamed from tests/ui/issues/issue-5666.rs)2
-rw-r--r--tests/ui/traits/nll-ice-custom-type-ops-53568.rs (renamed from tests/ui/issues/issue-53568.rs)1
-rw-r--r--tests/ui/traits/opaque-trait-size-error-5883.rs (renamed from tests/ui/issues/issue-5883.rs)1
-rw-r--r--tests/ui/traits/opaque-trait-size-error-5883.stderr (renamed from tests/ui/issues/issue-5883.stderr)6
-rw-r--r--tests/ui/traits/self-not-send-in-default-method-8171.rs (renamed from tests/ui/traits/self-implements-kinds-in-default-methods-8171.rs)0
-rw-r--r--tests/ui/traits/trait-implementation-generic-access-6898.rs (renamed from tests/ui/issues/issue-6898.rs)1
-rw-r--r--tests/ui/traits/trait-implementation-restriction-5988.rs (renamed from tests/ui/issues/issue-5988.rs)1
-rw-r--r--tests/ui/traits/trait-object-lifetime-bounds-7563.rs (renamed from tests/ui/traits/trait-implementation-and-usage-7563.rs)0
-rw-r--r--tests/ui/unreachable-code/boolean-negation-in-unreachable-code-7344.rs (renamed from tests/ui/issues/issue-7344.rs)1
-rw-r--r--tests/ui/unsafe/auxiliary/aux-5844.rs (renamed from tests/ui/issues/auxiliary/issue-5844-aux.rs)0
-rw-r--r--tests/ui/unsafe/extern-function-requires-unsafe-5844.rs8
-rw-r--r--tests/ui/unsafe/extern-function-requires-unsafe-5844.stderr (renamed from tests/ui/issues/issue-5844.stderr)6
109 files changed, 333 insertions, 164 deletions
diff --git a/tests/assembly-llvm/x86_64-mcount.rs b/tests/assembly-llvm/x86_64-mcount.rs
new file mode 100644
index 00000000000..0428272cfc5
--- /dev/null
+++ b/tests/assembly-llvm/x86_64-mcount.rs
@@ -0,0 +1,24 @@
+//@ assembly-output: emit-asm
+//@ compile-flags: -Zinstrument-mcount=y -Cllvm-args=-x86-asm-syntax=intel
+
+//@ revisions: x86_64-linux
+//@[x86_64-linux] compile-flags: --target=x86_64-unknown-linux-gnu
+//@[x86_64-linux] needs-llvm-components: x86
+//@[x86_64-linux] only-x86_64-unknown-linux-gnu
+
+//@ revisions: x86_64-darwin
+//@[x86_64-darwin] compile-flags: --target=x86_64-apple-darwin
+//@[x86_64-darwin] needs-llvm-components: x86
+//@[x86_64-darwin] only-x86_64-apple-darwin
+
+#![crate_type = "lib"]
+
+// CHECK-LABEL: mcount_func:
+#[no_mangle]
+pub fn mcount_func() {
+    // CHECK: call mcount
+
+    std::hint::black_box(());
+
+    // CHECK: ret
+}
diff --git a/tests/codegen-llvm/atomicptr.rs b/tests/codegen-llvm/atomicptr.rs
index ce6c4aa0d2b..9d5e618fe76 100644
--- a/tests/codegen-llvm/atomicptr.rs
+++ b/tests/codegen-llvm/atomicptr.rs
@@ -6,7 +6,6 @@
 
 //@ compile-flags: -Copt-level=3 -Cno-prepopulate-passes
 #![crate_type = "lib"]
-#![feature(strict_provenance_atomic_ptr)]
 
 use std::ptr::without_provenance_mut;
 use std::sync::atomic::AtomicPtr;
diff --git a/tests/debuginfo/basic-stepping.rs b/tests/debuginfo/basic-stepping.rs
index e7a70c8b087..f6399814a43 100644
--- a/tests/debuginfo/basic-stepping.rs
+++ b/tests/debuginfo/basic-stepping.rs
@@ -4,6 +4,7 @@
 
 //@ ignore-aarch64: Doesn't work yet.
 //@ ignore-loongarch64: Doesn't work yet.
+//@ ignore-riscv64: Doesn't work yet.
 //@ compile-flags: -g
 
 // gdb-command: run
diff --git a/tests/rustdoc-gui/links-color.goml b/tests/rustdoc-gui/links-color.goml
index f11920cdd8c..a363175c1dd 100644
--- a/tests/rustdoc-gui/links-color.goml
+++ b/tests/rustdoc-gui/links-color.goml
@@ -9,7 +9,7 @@ show-text: true
 define-function: (
     "check-colors",
     [theme, mod, macro, struct, enum, trait, fn, type, union, keyword,
-     sidebar, sidebar_current, sidebar_current_background],
+     attribute, sidebar, sidebar_current, sidebar_current_background],
     block {
         call-function: ("switch-theme", {"theme": |theme|})
         // Checking results colors.
@@ -22,6 +22,7 @@ define-function: (
         assert-css: (".item-table .type", {"color": |type|}, ALL)
         assert-css: (".item-table .union", {"color": |union|}, ALL)
         assert-css: (".item-table .keyword", {"color": |keyword|}, ALL)
+        assert-css: (".item-table .attribute", {"color": |attribute|}, ALL)
         // Checking sidebar elements.
         assert-css: (
             ".sidebar-elems li:not(.current) a",
@@ -58,6 +59,7 @@ call-function: (
         "type": "#ffa0a5",
         "union": "#ffa0a5",
         "keyword": "#39afd7",
+        "attribute": "#39afd7",
         "sidebar": "#53b1db",
         "sidebar_current": "#ffb44c",
         "sidebar_current_background": "transparent",
@@ -76,6 +78,7 @@ call-function: (
         "type": "#2dbfb8",
         "union": "#2dbfb8",
         "keyword": "#d2991d",
+        "attribute": "#d2991d",
         "sidebar": "#fdbf35",
         "sidebar_current": "#fdbf35",
         "sidebar_current_background": "#444",
@@ -94,6 +97,7 @@ call-function: (
         "type": "#ad378a",
         "union": "#ad378a",
         "keyword": "#3873ad",
+        "attribute": "#3873ad",
         "sidebar": "#356da4",
         "sidebar_current": "#356da4",
         "sidebar_current_background": "#fff",
diff --git a/tests/rustdoc-gui/module-items-font.goml b/tests/rustdoc-gui/module-items-font.goml
index 0e6dd81c05b..bed95b378c6 100644
--- a/tests/rustdoc-gui/module-items-font.goml
+++ b/tests/rustdoc-gui/module-items-font.goml
@@ -65,3 +65,12 @@ assert-css: (
     "#keywords + .item-table dd",
     {"font-family": '"Source Serif 4", NanumBarunGothic, serif'},
 )
+// attributes
+assert-css: (
+    "#attributes + .item-table dt a",
+    {"font-family": '"Fira Sans", Arial, NanumBarunGothic, sans-serif'},
+)
+assert-css: (
+    "#attributes + .item-table dd",
+    {"font-family": '"Source Serif 4", NanumBarunGothic, serif'},
+)
diff --git a/tests/rustdoc-gui/search-result-color.goml b/tests/rustdoc-gui/search-result-color.goml
index e136eab6a7d..fe0f6401089 100644
--- a/tests/rustdoc-gui/search-result-color.goml
+++ b/tests/rustdoc-gui/search-result-color.goml
@@ -7,7 +7,8 @@ define-function: (
     [
         theme, count_color, desc_color, path_color, bottom_border_color, keyword_color,
         struct_color, associatedtype_color, tymethod_color, method_color, structfield_color,
-        structfield_hover_color, macro_color, fn_color, hover_path_color, hover_background, grey
+        structfield_hover_color, macro_color, fn_color, hover_path_color, hover_background,
+        attribute_color, grey
     ],
     block {
         call-function: ("switch-theme", {"theme": |theme|})
@@ -47,6 +48,11 @@ define-function: (
             "hover_color": |keyword_color|,
         })
         call-function: ("check-result-color", {
+            "result_kind": "attribute",
+            "color": |attribute_color|,
+            "hover_color": |attribute_color|,
+        })
+        call-function: ("check-result-color", {
             "result_kind": "struct",
             "color": |struct_color|,
             "hover_color": |struct_color|,
@@ -155,6 +161,7 @@ call-function: ("check-search-color", {
     "path_color": "#0096cf",
     "bottom_border_color": "#aaa3",
     "keyword_color": "#39afd7",
+    "attribute_color": "#39afd7",
     "struct_color": "#ffa0a5",
     "associatedtype_color": "#39afd7",
     "tymethod_color": "#fdd687",
@@ -176,6 +183,7 @@ call-function: ("check-search-color", {
     "path_color": "#ddd",
     "bottom_border_color": "#aaa3",
     "keyword_color": "#d2991d",
+    "attribute_color": "#d2991d",
     "struct_color": "#2dbfb8",
     "associatedtype_color": "#d2991d",
     "tymethod_color": "#2bab63",
@@ -197,6 +205,7 @@ call-function: ("check-search-color", {
     "path_color": "#000",
     "bottom_border_color": "#aaa3",
     "keyword_color": "#3873ad",
+    "attribute_color": "#3873ad",
     "struct_color": "#ad378a",
     "associatedtype_color": "#3873ad",
     "tymethod_color": "#ad7c37",
diff --git a/tests/rustdoc-gui/sidebar-links-color.goml b/tests/rustdoc-gui/sidebar-links-color.goml
index 57c45555a76..9a398655f8f 100644
--- a/tests/rustdoc-gui/sidebar-links-color.goml
+++ b/tests/rustdoc-gui/sidebar-links-color.goml
@@ -12,6 +12,7 @@ define-function: (
         enum_hover_background, union, union_hover, union_hover_background, trait, trait_hover,
         trait_hover_background, fn, fn_hover, fn_hover_background, type, type_hover,
         type_hover_background, keyword, keyword_hover, keyword_hover_background,
+        attribute, attribute_hover, attribute_hover_background,
     ],
     block {
         call-function: ("switch-theme", {"theme": |theme|})
@@ -85,6 +86,16 @@ define-function: (
             ".sidebar .block.keyword a:hover",
             {"color": |keyword_hover|, "background-color": |keyword_hover_background|},
         )
+        // Attribute
+        assert-css: (
+            ".sidebar .block.attribute a",
+            {"color": |attribute|, "background-color": "rgba(0, 0, 0, 0)"},
+        )
+        move-cursor-to: ".sidebar .block.attribute a"
+        assert-css: (
+            ".sidebar .block.attribute a:hover",
+            {"color": |attribute_hover|, "background-color": |attribute_hover_background|},
+        )
     }
 )
 
@@ -113,6 +124,9 @@ call-function: (
         "keyword": "#53b1db",
         "keyword_hover": "#ffb44c",
         "keyword_hover_background": "transparent",
+        "attribute": "#53b1db",
+        "attribute_hover": "#ffb44c",
+        "attribute_hover_background": "transparent",
     }
 )
 call-function: (
@@ -140,6 +154,9 @@ call-function: (
         "keyword": "#fdbf35",
         "keyword_hover": "#fdbf35",
         "keyword_hover_background": "#444",
+        "attribute": "#fdbf35",
+        "attribute_hover": "#fdbf35",
+        "attribute_hover_background": "#444",
     }
 )
 call-function: (
@@ -167,5 +184,8 @@ call-function: (
         "keyword": "#356da4",
         "keyword_hover": "#356da4",
         "keyword_hover_background": "#fff",
+        "attribute": "#356da4",
+        "attribute_hover": "#356da4",
+        "attribute_hover_background": "#fff",
     }
 )
diff --git a/tests/rustdoc-gui/src/test_docs/lib.rs b/tests/rustdoc-gui/src/test_docs/lib.rs
index 623f5b33e9b..42f2fbd93b1 100644
--- a/tests/rustdoc-gui/src/test_docs/lib.rs
+++ b/tests/rustdoc-gui/src/test_docs/lib.rs
@@ -161,6 +161,10 @@ pub enum AnEnum {
 /// Some keyword.
 pub mod keyword {}
 
+#[doc(attribute = "forbid")]
+/// Some attribute.
+pub mod repr {}
+
 /// Just some type alias.
 pub type SomeType = u32;
 
diff --git a/tests/rustdoc-json/doc_attribute.rs b/tests/rustdoc-json/doc_attribute.rs
new file mode 100644
index 00000000000..9e1a711f0b7
--- /dev/null
+++ b/tests/rustdoc-json/doc_attribute.rs
@@ -0,0 +1,18 @@
+// Doc attributes (`#[doc(attribute = "...")]` should not be generated in rustdoc JSON output
+// and this test ensures it.
+
+#![feature(rustdoc_internals)]
+#![no_std]
+
+//@ !has "$.index[?(@.name=='repr')]"
+//@ has "$.index[?(@.name=='foo')]"
+
+#[doc(attribute = "repr")]
+/// this is a test!
+pub mod foo {}
+
+//@ !has "$.index[?(@.name=='forbid')]"
+//@ !has "$.index[?(@.name=='bar')]"
+#[doc(attribute = "forbid")]
+/// hello
+mod bar {}
diff --git a/tests/rustdoc-ui/doc-attribute-unsupported.rs b/tests/rustdoc-ui/doc-attribute-unsupported.rs
new file mode 100644
index 00000000000..3bd153117a9
--- /dev/null
+++ b/tests/rustdoc-ui/doc-attribute-unsupported.rs
@@ -0,0 +1,7 @@
+// This is currently not supported but should be!
+
+#![feature(rustdoc_internals)]
+
+#[doc(attribute = "diagnostic::do_not_recommend")] //~ ERROR
+/// bla
+mod yup {}
diff --git a/tests/rustdoc-ui/doc-attribute-unsupported.stderr b/tests/rustdoc-ui/doc-attribute-unsupported.stderr
new file mode 100644
index 00000000000..e2480a548ac
--- /dev/null
+++ b/tests/rustdoc-ui/doc-attribute-unsupported.stderr
@@ -0,0 +1,10 @@
+error: nonexistent builtin attribute `diagnostic::do_not_recommend` used in `#[doc(attribute = "...")]`
+  --> $DIR/doc-attribute-unsupported.rs:5:19
+   |
+LL | #[doc(attribute = "diagnostic::do_not_recommend")]
+   |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = help: only existing builtin attributes are allowed in core/std
+
+error: aborting due to 1 previous error
+
diff --git a/tests/rustdoc-ui/invalid-attribute.rs b/tests/rustdoc-ui/invalid-attribute.rs
new file mode 100644
index 00000000000..2fc7be2cf34
--- /dev/null
+++ b/tests/rustdoc-ui/invalid-attribute.rs
@@ -0,0 +1,10 @@
+// Testing the output when an invalid builtin attribute is passed as value
+// to `doc(attribute = "...")`.
+
+#![feature(rustdoc_internals)]
+
+#[doc(attribute = "foo df")] //~ ERROR
+mod foo {}
+
+#[doc(attribute = "fooyi")] //~ ERROR
+mod foo2 {}
diff --git a/tests/rustdoc-ui/invalid-attribute.stderr b/tests/rustdoc-ui/invalid-attribute.stderr
new file mode 100644
index 00000000000..66e68ce44b4
--- /dev/null
+++ b/tests/rustdoc-ui/invalid-attribute.stderr
@@ -0,0 +1,18 @@
+error: nonexistent builtin attribute `foo df` used in `#[doc(attribute = "...")]`
+  --> $DIR/invalid-attribute.rs:6:19
+   |
+LL | #[doc(attribute = "foo df")]
+   |                   ^^^^^^^^
+   |
+   = help: only existing builtin attributes are allowed in core/std
+
+error: nonexistent builtin attribute `fooyi` used in `#[doc(attribute = "...")]`
+  --> $DIR/invalid-attribute.rs:9:19
+   |
+LL | #[doc(attribute = "fooyi")]
+   |                   ^^^^^^^
+   |
+   = help: only existing builtin attributes are allowed in core/std
+
+error: aborting due to 2 previous errors
+
diff --git a/tests/rustdoc/doc-attribute.rs b/tests/rustdoc/doc-attribute.rs
new file mode 100644
index 00000000000..92e603ae6e5
--- /dev/null
+++ b/tests/rustdoc/doc-attribute.rs
@@ -0,0 +1,24 @@
+// Test checking the `#[doc(attribute = "...")]` attribute.
+
+#![crate_name = "foo"]
+
+#![feature(rustdoc_internals)]
+
+//@ has foo/index.html '//h2[@id="attributes"]' 'Attributes'
+//@ has foo/index.html '//a[@href="attribute.no_mangle.html"]' 'no_mangle'
+//@ has foo/index.html '//div[@class="sidebar-elems"]//li/a' 'Attributes'
+//@ has foo/index.html '//div[@class="sidebar-elems"]//li/a/@href' '#attributes'
+//@ has foo/attribute.no_mangle.html '//h1' 'Attribute no_mangle'
+//@ has foo/attribute.no_mangle.html '//section[@id="main-content"]//div[@class="docblock"]//p' 'this is a test!'
+//@ has foo/index.html '//a/@href' '../foo/index.html'
+//@ !has foo/foo/index.html
+//@ !has-dir foo/foo
+//@ !has foo/index.html '//span' '🔒'
+#[doc(attribute = "no_mangle")]
+/// this is a test!
+mod foo{}
+
+//@ has foo/attribute.repr.html '//section[@id="main-content"]//div[@class="docblock"]//p' 'hello'
+#[doc(attribute = "repr")]
+/// hello
+mod bar {}
diff --git a/tests/ui-fulldeps/internal-lints/import-of-type-ir-traits.rs b/tests/ui-fulldeps/internal-lints/import-of-type-ir-traits.rs
index 3fdd65d6c87..965fd832722 100644
--- a/tests/ui-fulldeps/internal-lints/import-of-type-ir-traits.rs
+++ b/tests/ui-fulldeps/internal-lints/import-of-type-ir-traits.rs
@@ -8,7 +8,7 @@ extern crate rustc_type_ir;
 
 use rustc_type_ir::Interner;
 
-fn foo<I: Interner>(cx: I, did: I::DefId) {
+fn foo<I: Interner>(cx: I, did: I::TraitId) {
     let _ = cx.trait_is_unsafe(did);
     //~^ ERROR do not use `rustc_type_ir::Interner` or `rustc_type_ir::InferCtxtLike` unless you're inside of the trait solver
 }
diff --git a/tests/ui/array-slice-vec/pattern-matching-fixed-length-vectors-7784.rs b/tests/ui/array-slice-vec/fixed-length-vector-pattern-matching-7784.rs
index 7d987e92b63..7d987e92b63 100644
--- a/tests/ui/array-slice-vec/pattern-matching-fixed-length-vectors-7784.rs
+++ b/tests/ui/array-slice-vec/fixed-length-vector-pattern-matching-7784.rs
diff --git a/tests/ui/array-slice-vec/matching-on-vector-slice-option-8498.rs b/tests/ui/array-slice-vec/vector-slice-matching-8498.rs
index e243a247ed5..e243a247ed5 100644
--- a/tests/ui/array-slice-vec/matching-on-vector-slice-option-8498.rs
+++ b/tests/ui/array-slice-vec/vector-slice-matching-8498.rs
diff --git a/tests/ui/pattern/match-with-at-binding-8391.rs b/tests/ui/binding/match-with-at-binding-8391.rs
index bc4e7be7989..bc4e7be7989 100644
--- a/tests/ui/pattern/match-with-at-binding-8391.rs
+++ b/tests/ui/binding/match-with-at-binding-8391.rs
diff --git a/tests/ui/issues/issue-7092.rs b/tests/ui/binding/method-call-nonsensical-pattern-binding-7092.rs
index fab18bd7cf7..4cb04cdf5be 100644
--- a/tests/ui/issues/issue-7092.rs
+++ b/tests/ui/binding/method-call-nonsensical-pattern-binding-7092.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/7092
 enum Whatever {
 }
 
diff --git a/tests/ui/issues/issue-7092.stderr b/tests/ui/binding/method-call-nonsensical-pattern-binding-7092.stderr
index e2e57486746..1f8ff2d8df1 100644
--- a/tests/ui/issues/issue-7092.stderr
+++ b/tests/ui/binding/method-call-nonsensical-pattern-binding-7092.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/issue-7092.rs:6:9
+  --> $DIR/method-call-nonsensical-pattern-binding-7092.rs:7:9
    |
 LL |     match x {
    |           - this expression has type `Whatever`
diff --git a/tests/ui/pattern/ref-in-function-parameter-patterns-8860.rs b/tests/ui/binding/ref-pattern-drop-behavior-8860.rs
index 1a67caf021c..1a67caf021c 100644
--- a/tests/ui/pattern/ref-in-function-parameter-patterns-8860.rs
+++ b/tests/ui/binding/ref-pattern-drop-behavior-8860.rs
diff --git a/tests/ui/issues/issue-6738.rs b/tests/ui/binop/struct-field-generic-type-binary-assignment-error-6738.rs
index a2f8dfe9c49..856caa2b297 100644
--- a/tests/ui/issues/issue-6738.rs
+++ b/tests/ui/binop/struct-field-generic-type-binary-assignment-error-6738.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/6738
 struct Foo<T> {
     x: T,
 }
diff --git a/tests/ui/issues/issue-6738.stderr b/tests/ui/binop/struct-field-generic-type-binary-assignment-error-6738.stderr
index f22d6a2e468..060d33079d3 100644
--- a/tests/ui/issues/issue-6738.stderr
+++ b/tests/ui/binop/struct-field-generic-type-binary-assignment-error-6738.stderr
@@ -1,5 +1,5 @@
 error[E0368]: binary assignment operation `+=` cannot be applied to type `T`
-  --> $DIR/issue-6738.rs:6:9
+  --> $DIR/struct-field-generic-type-binary-assignment-error-6738.rs:7:9
    |
 LL |         self.x += v.x;
    |         ------^^^^^^^
diff --git a/tests/ui/issues/auxiliary/issue-5518.rs b/tests/ui/borrowck/auxiliary/aux-5518.rs
index bfe96552a5c..bfe96552a5c 100644
--- a/tests/ui/issues/auxiliary/issue-5518.rs
+++ b/tests/ui/borrowck/auxiliary/aux-5518.rs
diff --git a/tests/ui/issues/issue-5884.rs b/tests/ui/borrowck/borrowed-pointer-in-struct-5884.rs
index 559b897395d..d2f17cf905d 100644
--- a/tests/ui/issues/issue-5884.rs
+++ b/tests/ui/borrowck/borrowed-pointer-in-struct-5884.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/5884
 //@ build-pass
 #![allow(dead_code)]
 
diff --git a/tests/ui/issues/issue-5550.rs b/tests/ui/borrowck/incorrect-loan-error-on-local-update-5550.rs
index 41de8ee5d32..2258d768657 100644
--- a/tests/ui/issues/issue-5550.rs
+++ b/tests/ui/borrowck/incorrect-loan-error-on-local-update-5550.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/5550
 //@ run-pass
 #![allow(unused_assignments)]
 
diff --git a/tests/ui/issues/issue-5708.rs b/tests/ui/borrowck/struct-with-reference-to-trait-5708.rs
index 6fa3cfa4724..5157a3bf36b 100644
--- a/tests/ui/issues/issue-5708.rs
+++ b/tests/ui/borrowck/struct-with-reference-to-trait-5708.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/5708
 //@ run-pass
 #![allow(unused_variables)]
 /*
@@ -10,7 +11,6 @@ This does not occur with concrete types, only with references
 to traits.
 */
 
-
 // original
 trait Inner {
     fn print(&self);
@@ -38,7 +38,6 @@ pub fn main() {
     outer.inner.print();
 }
 
-
 // minimal
 pub trait MyTrait<T> {
     fn dummy(&self, t: T) -> T { panic!() }
diff --git a/tests/ui/borrowck/trait-method-lifetime-substitution-5518.rs b/tests/ui/borrowck/trait-method-lifetime-substitution-5518.rs
new file mode 100644
index 00000000000..f254030a011
--- /dev/null
+++ b/tests/ui/borrowck/trait-method-lifetime-substitution-5518.rs
@@ -0,0 +1,7 @@
+// https://github.com/rust-lang/rust/issues/5518
+//@ run-pass
+//@ aux-build:aux-5518.rs
+
+extern crate aux_5518 as other;
+
+fn main() {}
diff --git a/tests/ui/issues/issue-6557.rs b/tests/ui/box/box-patterns-feature-usage-6557.rs
index 64a025a294f..e0d9b25c366 100644
--- a/tests/ui/issues/issue-6557.rs
+++ b/tests/ui/box/box-patterns-feature-usage-6557.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/6557
 //@ check-pass
 #![allow(dead_code)]
 
diff --git a/tests/ui/issues/issue-54094.rs b/tests/ui/cast/associated-type-bounds-cast-54094.rs
index 4ca7d1d81b6..c9f307e95b9 100644
--- a/tests/ui/issues/issue-54094.rs
+++ b/tests/ui/cast/associated-type-bounds-cast-54094.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/54094
 //@ check-pass
 trait Zoo {
     type X;
diff --git a/tests/ui/issues/issue-6318.rs b/tests/ui/cast/owned-struct-to-trait-cast-6318.rs
index d3f08285a93..8cfc77c4274 100644
--- a/tests/ui/issues/issue-6318.rs
+++ b/tests/ui/cast/owned-struct-to-trait-cast-6318.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/6318
 //@ run-pass
 
 pub enum Thing {
diff --git a/tests/ui/issues/issue-6153.rs b/tests/ui/closures/closure-mut-argument-6153.rs
index cd78c85d94b..ac19c2bd15f 100644
--- a/tests/ui/issues/issue-6153.rs
+++ b/tests/ui/closures/closure-mut-argument-6153.rs
@@ -1,6 +1,6 @@
+// https://github.com/rust-lang/rust/issues/6153
 //@ run-pass
 
-
 fn swap<F>(f: F) -> Vec<isize> where F: FnOnce(Vec<isize>) -> Vec<isize> {
     let x = vec![1, 2, 3];
     f(x)
diff --git a/tests/ui/issues/issue-54462-mutable-noalias-correctness.rs b/tests/ui/codegen/matrix-row-swap-54462.rs
index 70d0bee7332..6bfc600399a 100644
--- a/tests/ui/issues/issue-54462-mutable-noalias-correctness.rs
+++ b/tests/ui/codegen/matrix-row-swap-54462.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/54462
 //@ run-pass
 //
 //@ compile-flags: -Ccodegen-units=1 -O
diff --git a/tests/ui/issues/issue-7012.rs b/tests/ui/codegen/static-array-comparison-7012.rs
index 69b881e2a43..c08b1c0059b 100644
--- a/tests/ui/issues/issue-7012.rs
+++ b/tests/ui/codegen/static-array-comparison-7012.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/7012
 //@ run-pass
 #![allow(non_camel_case_types)]
 #![allow(non_upper_case_globals)]
diff --git a/tests/ui/coercion/mut-trait-coercion-8248.rs b/tests/ui/coercion/coerce-mut-trait-object-8248.rs
index a45a4d94315..a45a4d94315 100644
--- a/tests/ui/coercion/mut-trait-coercion-8248.rs
+++ b/tests/ui/coercion/coerce-mut-trait-object-8248.rs
diff --git a/tests/ui/coercion/mut-trait-coercion-8248.stderr b/tests/ui/coercion/coerce-mut-trait-object-8248.stderr
index 0c7d5f9dc45..c3b35a7063c 100644
--- a/tests/ui/coercion/mut-trait-coercion-8248.stderr
+++ b/tests/ui/coercion/coerce-mut-trait-object-8248.stderr
@@ -1,5 +1,5 @@
 warning: method `dummy` is never used
-  --> $DIR/mut-trait-coercion-8248.rs:5:8
+  --> $DIR/coerce-mut-trait-object-8248.rs:5:8
    |
 LL | trait A {
    |       - method in this trait
diff --git a/tests/ui/issues/issue-54477-reduced-2.rs b/tests/ui/collections/vecdeque-append-operation-54477.rs
index 5f65e545182..7680fd0bb01 100644
--- a/tests/ui/issues/issue-54477-reduced-2.rs
+++ b/tests/ui/collections/vecdeque-append-operation-54477.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/54477
 //@ run-pass
 // rust-lang/rust#54477: runtime bug in the VecDeque library that was
 // exposed by this test case, derived from test suite of crates.io
diff --git a/tests/ui/issues/auxiliary/issue-7178.rs b/tests/ui/cross-crate/auxiliary/aux-7178.rs
index 56ae5139af4..56ae5139af4 100644
--- a/tests/ui/issues/auxiliary/issue-7178.rs
+++ b/tests/ui/cross-crate/auxiliary/aux-7178.rs
diff --git a/tests/ui/cross-crate/static-method-returning-self-with-generics-7178.rs b/tests/ui/cross-crate/static-method-returning-self-with-generics-7178.rs
new file mode 100644
index 00000000000..3888d3bdaa9
--- /dev/null
+++ b/tests/ui/cross-crate/static-method-returning-self-with-generics-7178.rs
@@ -0,0 +1,9 @@
+// https://github.com/rust-lang/rust/issues/7178
+//@ run-pass
+//@ aux-build:aux-7178.rs
+
+extern crate aux_7178 as cross_crate_self;
+
+pub fn main() {
+    let _ = cross_crate_self::Foo::new(&1);
+}
diff --git a/tests/ui/cross-crate/static-regions-in-cross-crate-8259.rs b/tests/ui/cross-crate/static-with-cross-crate-regions-8259.rs
index 347cfa2aee1..347cfa2aee1 100644
--- a/tests/ui/cross-crate/static-regions-in-cross-crate-8259.rs
+++ b/tests/ui/cross-crate/static-with-cross-crate-regions-8259.rs
diff --git a/tests/ui/cross-crate/tuple-struct-cross-crate-7899.rs b/tests/ui/cross-crate/tuple-struct-cross-crate-7899.rs
new file mode 100644
index 00000000000..ce3ea7dd579
--- /dev/null
+++ b/tests/ui/cross-crate/tuple-struct-cross-crate-7899.rs
@@ -0,0 +1,10 @@
+// https://github.com/rust-lang/rust/issues/7899
+//@ run-pass
+#![allow(unused_variables)]
+//@ aux-build:aux-7899.rs
+
+extern crate aux_7899 as testcrate;
+
+fn main() {
+    let f = testcrate::V2(1.0f32, 2.0f32);
+}
diff --git a/tests/ui/issues/issue-5900.rs b/tests/ui/enum/enum-referred-by-submodule-5900.rs
index 14b7b8f815a..4ed092670a8 100644
--- a/tests/ui/issues/issue-5900.rs
+++ b/tests/ui/enum/enum-referred-by-submodule-5900.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/5900
 //@ check-pass
 #![allow(dead_code)]
 
diff --git a/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997.rs b/tests/ui/enum/enum-with-generic-parameter-5997.rs
index 7ed8819f322..fab7ebbbbdc 100644
--- a/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997.rs
+++ b/tests/ui/enum/enum-with-generic-parameter-5997.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/5997
 //@ run-pass
 #![allow(dead_code)]
 
diff --git a/tests/ui/issues/issue-6117.rs b/tests/ui/enum/match-either-enum-variants-6117.rs
index 3ccf67b0319..7b395066166 100644
--- a/tests/ui/issues/issue-6117.rs
+++ b/tests/ui/enum/match-either-enum-variants-6117.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/6117
 //@ run-pass
 #![allow(dead_code)]
 
diff --git a/tests/ui/feature-gates/feature-gate-rustdoc_internals.rs b/tests/ui/feature-gates/feature-gate-rustdoc_internals.rs
index 57d6b591287..0ad3b2aead4 100644
--- a/tests/ui/feature-gates/feature-gate-rustdoc_internals.rs
+++ b/tests/ui/feature-gates/feature-gate-rustdoc_internals.rs
@@ -2,6 +2,10 @@
 /// wonderful
 mod foo {}
 
+#[doc(attribute = "repr")] //~ ERROR: `#[doc(attribute)]` is meant for internal use only
+/// wonderful
+mod foo2 {}
+
 trait Mine {}
 
 #[doc(fake_variadic)]  //~ ERROR: `#[doc(fake_variadic)]` is meant for internal use only
diff --git a/tests/ui/feature-gates/feature-gate-rustdoc_internals.stderr b/tests/ui/feature-gates/feature-gate-rustdoc_internals.stderr
index f3c00a2156b..5a6d4d3b45e 100644
--- a/tests/ui/feature-gates/feature-gate-rustdoc_internals.stderr
+++ b/tests/ui/feature-gates/feature-gate-rustdoc_internals.stderr
@@ -8,8 +8,18 @@ LL | #[doc(keyword = "match")]
    = help: add `#![feature(rustdoc_internals)]` to the crate attributes to enable
    = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
 
+error[E0658]: `#[doc(attribute)]` is meant for internal use only
+  --> $DIR/feature-gate-rustdoc_internals.rs:5:1
+   |
+LL | #[doc(attribute = "repr")]
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: see issue #90418 <https://github.com/rust-lang/rust/issues/90418> for more information
+   = help: add `#![feature(rustdoc_internals)]` to the crate attributes to enable
+   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
+
 error[E0658]: `#[doc(fake_variadic)]` is meant for internal use only
-  --> $DIR/feature-gate-rustdoc_internals.rs:7:1
+  --> $DIR/feature-gate-rustdoc_internals.rs:11:1
    |
 LL | #[doc(fake_variadic)]
    | ^^^^^^^^^^^^^^^^^^^^^
@@ -19,7 +29,7 @@ LL | #[doc(fake_variadic)]
    = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
 
 error[E0658]: `#[doc(search_unbox)]` is meant for internal use only
-  --> $DIR/feature-gate-rustdoc_internals.rs:10:1
+  --> $DIR/feature-gate-rustdoc_internals.rs:14:1
    |
 LL | #[doc(search_unbox)]
    | ^^^^^^^^^^^^^^^^^^^^
@@ -28,6 +38,6 @@ LL | #[doc(search_unbox)]
    = help: add `#![feature(rustdoc_internals)]` to the crate attributes to enable
    = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
 
-error: aborting due to 3 previous errors
+error: aborting due to 4 previous errors
 
 For more information about this error, try `rustc --explain E0658`.
diff --git a/tests/ui/issues/issue-54696.rs b/tests/ui/function-pointer/function-pointer-comparison-54696.rs
index 63ffbe42bcc..2e28dfeaaf8 100644
--- a/tests/ui/issues/issue-54696.rs
+++ b/tests/ui/function-pointer/function-pointer-comparison-54696.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/54696
 //@ run-pass
 
 #![allow(unpredictable_function_pointer_comparisons)]
diff --git a/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-enum.rs b/tests/ui/generics/enum-definition-with-outer-generic-parameter-5997.rs
index 0b1857ae3df..00bf66dd4e0 100644
--- a/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-enum.rs
+++ b/tests/ui/generics/enum-definition-with-outer-generic-parameter-5997.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/5997
 fn f<Z>() -> bool {
     enum E { V(Z) }
     //~^ ERROR can't use generic parameters from outer item
diff --git a/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-enum.stderr b/tests/ui/generics/enum-definition-with-outer-generic-parameter-5997.stderr
index c0b3cd6de66..aea0f049b07 100644
--- a/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-enum.stderr
+++ b/tests/ui/generics/enum-definition-with-outer-generic-parameter-5997.stderr
@@ -1,5 +1,5 @@
 error[E0401]: can't use generic parameters from outer item
-  --> $DIR/issue-5997-enum.rs:2:16
+  --> $DIR/enum-definition-with-outer-generic-parameter-5997.rs:3:16
    |
 LL | fn f<Z>() -> bool {
    |      - type parameter from outer item
diff --git a/tests/ui/issues/issue-54410.rs b/tests/ui/issues/issue-54410.rs
deleted file mode 100644
index e3e8ca985b9..00000000000
--- a/tests/ui/issues/issue-54410.rs
+++ /dev/null
@@ -1,8 +0,0 @@
-extern "C" {
-    pub static mut symbol: [i8];
-    //~^ ERROR the size for values of type `[i8]` cannot be known at compilation time
-}
-
-fn main() {
-    println!("{:p}", unsafe { &symbol });
-}
diff --git a/tests/ui/issues/issue-54410.stderr b/tests/ui/issues/issue-54410.stderr
deleted file mode 100644
index cb68ada7e13..00000000000
--- a/tests/ui/issues/issue-54410.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0277]: the size for values of type `[i8]` cannot be known at compilation time
-  --> $DIR/issue-54410.rs:2:5
-   |
-LL |     pub static mut symbol: [i8];
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
-   |
-   = help: the trait `Sized` is not implemented for `[i8]`
-   = note: statics and constants must have a statically known size
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/issues/issue-5518.rs b/tests/ui/issues/issue-5518.rs
deleted file mode 100644
index 333185c482f..00000000000
--- a/tests/ui/issues/issue-5518.rs
+++ /dev/null
@@ -1,7 +0,0 @@
-//@ run-pass
-//@ aux-build:issue-5518.rs
-
-
-extern crate issue_5518 as other;
-
-fn main() {}
diff --git a/tests/ui/issues/issue-5844.rs b/tests/ui/issues/issue-5844.rs
deleted file mode 100644
index 23021207ae1..00000000000
--- a/tests/ui/issues/issue-5844.rs
+++ /dev/null
@@ -1,7 +0,0 @@
-//@aux-build:issue-5844-aux.rs
-
-extern crate issue_5844_aux;
-
-fn main() {
-    issue_5844_aux::rand(); //~ ERROR: requires unsafe
-}
diff --git a/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-struct.rs b/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-struct.rs
deleted file mode 100644
index 19d994b0dfb..00000000000
--- a/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-struct.rs
+++ /dev/null
@@ -1,10 +0,0 @@
-fn f<T>() -> bool {
-    struct S(T); //~ ERROR can't use generic parameters from outer item
-
-    true
-}
-
-fn main() {
-    let b = f::<isize>();
-    assert!(b);
-}
diff --git a/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-struct.stderr b/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-struct.stderr
deleted file mode 100644
index 670a54894b5..00000000000
--- a/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-struct.stderr
+++ /dev/null
@@ -1,13 +0,0 @@
-error[E0401]: can't use generic parameters from outer item
-  --> $DIR/issue-5997-struct.rs:2:14
-   |
-LL | fn f<T>() -> bool {
-   |      - type parameter from outer item
-LL |     struct S(T);
-   |             -^ use of generic parameter from outer item
-   |             |
-   |             help: try introducing a local generic parameter here: `<T>`
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0401`.
diff --git a/tests/ui/issues/issue-6344-match.rs b/tests/ui/issues/issue-6344-match.rs
deleted file mode 100644
index 9251e274383..00000000000
--- a/tests/ui/issues/issue-6344-match.rs
+++ /dev/null
@@ -1,18 +0,0 @@
-//@ run-pass
-#![allow(non_shorthand_field_patterns)]
-
-struct A { x: usize }
-
-impl Drop for A {
-    fn drop(&mut self) {}
-}
-
-pub fn main() {
-    let a = A { x: 0 };
-
-    match a {
-        A { x : ref x } => {
-            println!("{}", x)
-        }
-    }
-}
diff --git a/tests/ui/issues/issue-7178.rs b/tests/ui/issues/issue-7178.rs
deleted file mode 100644
index 408ce0b03eb..00000000000
--- a/tests/ui/issues/issue-7178.rs
+++ /dev/null
@@ -1,9 +0,0 @@
-//@ run-pass
-//@ aux-build:issue-7178.rs
-
-
-extern crate issue_7178 as cross_crate_self;
-
-pub fn main() {
-    let _ = cross_crate_self::Foo::new(&1);
-}
diff --git a/tests/ui/issues/issue-53419.rs b/tests/ui/lifetimes/dyn-trait-function-pointer-53419.rs
index 55d41f2005d..b1017b104ac 100644
--- a/tests/ui/issues/issue-53419.rs
+++ b/tests/ui/lifetimes/dyn-trait-function-pointer-53419.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/53419
 //@ check-pass
 
 struct Foo {
diff --git a/tests/ui/issues/issue-7268.rs b/tests/ui/lifetimes/static-bound-fulfillment-with-pointer-7268.rs
index a3bc1bc3446..8ec58e6cd80 100644
--- a/tests/ui/issues/issue-7268.rs
+++ b/tests/ui/lifetimes/static-bound-fulfillment-with-pointer-7268.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/7268
 //@ check-pass
 #![allow(dead_code)]
 
diff --git a/tests/ui/limits/huge-enum.stderr b/tests/ui/limits/huge-enum.full-debuginfo.stderr
index 5b97a2104a3..4b179d59e5f 100644
--- a/tests/ui/limits/huge-enum.stderr
+++ b/tests/ui/limits/huge-enum.full-debuginfo.stderr
@@ -1,5 +1,5 @@
 error: values of the type `Option<TYPE>` are too big for the target architecture
-  --> $DIR/huge-enum.rs:15:9
+  --> $DIR/huge-enum.rs:17:9
    |
 LL |     let big: BIG = None;
    |         ^^^
diff --git a/tests/ui/limits/huge-enum.no-debuginfo.stderr b/tests/ui/limits/huge-enum.no-debuginfo.stderr
new file mode 100644
index 00000000000..4b179d59e5f
--- /dev/null
+++ b/tests/ui/limits/huge-enum.no-debuginfo.stderr
@@ -0,0 +1,8 @@
+error: values of the type `Option<TYPE>` are too big for the target architecture
+  --> $DIR/huge-enum.rs:17:9
+   |
+LL |     let big: BIG = None;
+   |         ^^^
+
+error: aborting due to 1 previous error
+
diff --git a/tests/ui/limits/huge-enum.rs b/tests/ui/limits/huge-enum.rs
index 6d5b86411f3..9395bee9765 100644
--- a/tests/ui/limits/huge-enum.rs
+++ b/tests/ui/limits/huge-enum.rs
@@ -1,9 +1,11 @@
+// FIXME(#61117): Remove revisions once x86_64-gnu-debug CI job sets rust.debuginfo-level-tests=2
+// NOTE: The .stderr for both revisions shall be identical.
+//@ revisions: no-debuginfo full-debuginfo
 //@ build-fail
 //@ normalize-stderr: "std::option::Option<\[u32; \d+\]>" -> "TYPE"
 //@ normalize-stderr: "\[u32; \d+\]" -> "TYPE"
-
-// FIXME(#61117): Respect debuginfo-level-tests, do not force debuginfo-level=0
-//@ compile-flags: -Cdebuginfo=0
+//@[no-debuginfo] compile-flags: -Cdebuginfo=0
+//@[full-debuginfo] compile-flags: -Cdebuginfo=2
 
 #[cfg(target_pointer_width = "32")]
 type BIG = Option<[u32; (1<<29)-1]>;
diff --git a/tests/ui/issues/issue-5741.rs b/tests/ui/loops/unreachable-while-loop-5741.rs
index af4702ec22c..bc69df0f675 100644
--- a/tests/ui/issues/issue-5741.rs
+++ b/tests/ui/loops/unreachable-while-loop-5741.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/5741
 //@ run-pass
 #![allow(while_true)]
 #![allow(unreachable_code)]
diff --git a/tests/ui/issues/issue-5554.rs b/tests/ui/macros/macro-variable-declaration-with-bounds-5554.rs
index 7d219a0df70..8ccf8e80131 100644
--- a/tests/ui/issues/issue-5554.rs
+++ b/tests/ui/macros/macro-variable-declaration-with-bounds-5554.rs
@@ -1,7 +1,7 @@
+// https://github.com/rust-lang/rust/issues/5554
 //@ run-pass
 #![allow(dead_code)]
 
-
 pub struct X<T> {
     a: T,
 }
diff --git a/tests/ui/issues/issue-5718.rs b/tests/ui/macros/macro-variable-unused-reporting-5718.rs
index 234fb2e2222..55da925461d 100644
--- a/tests/ui/issues/issue-5718.rs
+++ b/tests/ui/macros/macro-variable-unused-reporting-5718.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/5718
 //@ run-pass
 
 struct Element;
diff --git a/tests/ui/issues/issue-5358-1.rs b/tests/ui/match/mismatched-types-in-match-5358.rs
index 281f219c039..d096bf3a493 100644
--- a/tests/ui/issues/issue-5358-1.rs
+++ b/tests/ui/match/mismatched-types-in-match-5358.rs
@@ -1,8 +1,13 @@
-enum Either<T, U> { Left(T), Right(U) }
+// https://github.com/rust-lang/rust/issues/5358
+enum Either<T, U> {
+    Left(T),
+    Right(U),
+}
 struct S(Either<usize, usize>);
 
 fn main() {
-    match S(Either::Left(5)) { //~ NOTE this expression has type `S`
+    match S(Either::Left(5)) {
+        //~^ NOTE this expression has type `S`
         Either::Right(_) => {}
         //~^ ERROR mismatched types
         //~| NOTE expected `S`, found `Either<_, _>`
diff --git a/tests/ui/issues/issue-5358-1.stderr b/tests/ui/match/mismatched-types-in-match-5358.stderr
index e68db865dc4..6a6cf3ee269 100644
--- a/tests/ui/issues/issue-5358-1.stderr
+++ b/tests/ui/match/mismatched-types-in-match-5358.stderr
@@ -1,8 +1,9 @@
 error[E0308]: mismatched types
-  --> $DIR/issue-5358-1.rs:6:9
+  --> $DIR/mismatched-types-in-match-5358.rs:11:9
    |
 LL |     match S(Either::Left(5)) {
    |           ------------------ this expression has type `S`
+LL |
 LL |         Either::Right(_) => {}
    |         ^^^^^^^^^^^^^^^^ expected `S`, found `Either<_, _>`
    |
diff --git a/tests/ui/match/mismatched-types-in-match-pattern-7867.rs b/tests/ui/match/mismatched-types-in-match-7867.rs
index 9ff8755c819..9ff8755c819 100644
--- a/tests/ui/match/mismatched-types-in-match-pattern-7867.rs
+++ b/tests/ui/match/mismatched-types-in-match-7867.rs
diff --git a/tests/ui/match/mismatched-types-in-match-pattern-7867.stderr b/tests/ui/match/mismatched-types-in-match-7867.stderr
index 8997f36114a..e41a61e42f4 100644
--- a/tests/ui/match/mismatched-types-in-match-pattern-7867.stderr
+++ b/tests/ui/match/mismatched-types-in-match-7867.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/mismatched-types-in-match-pattern-7867.rs:10:9
+  --> $DIR/mismatched-types-in-match-7867.rs:10:9
    |
 LL | enum A { B, C }
    |          - unit variant defined here
diff --git a/tests/ui/methods/trait-method-self-param-error-7575.rs b/tests/ui/methods/trait-method-resolution-7575.rs
index 9793d43cc24..9793d43cc24 100644
--- a/tests/ui/methods/trait-method-self-param-error-7575.rs
+++ b/tests/ui/methods/trait-method-resolution-7575.rs
diff --git a/tests/ui/methods/trait-method-self-param-error-7575.stderr b/tests/ui/methods/trait-method-resolution-7575.stderr
index 656db30352d..8bbc360de57 100644
--- a/tests/ui/methods/trait-method-self-param-error-7575.stderr
+++ b/tests/ui/methods/trait-method-resolution-7575.stderr
@@ -1,5 +1,5 @@
 warning: trait `Foo` is never used
-  --> $DIR/trait-method-self-param-error-7575.rs:4:7
+  --> $DIR/trait-method-resolution-7575.rs:4:7
    |
 LL | trait Foo {
    |       ^^^
diff --git a/tests/ui/issues/issue-5950.rs b/tests/ui/modules/pub-use-module-alias-5950.rs
index 6015560fcf8..91d3f9b16ff 100644
--- a/tests/ui/issues/issue-5950.rs
+++ b/tests/ui/modules/pub-use-module-alias-5950.rs
@@ -1,6 +1,6 @@
+// https://github.com/rust-lang/rust/issues/5950
 //@ check-pass
 
-
 pub use local as local_alias;
 
 pub mod local { }
diff --git a/tests/ui/resolve/module-import-resolution-7663.rs b/tests/ui/modules/use-statement-duplicate-check-7663.rs
index 872806594fc..872806594fc 100644
--- a/tests/ui/resolve/module-import-resolution-7663.rs
+++ b/tests/ui/modules/use-statement-duplicate-check-7663.rs
diff --git a/tests/ui/issues/issue-6130.rs b/tests/ui/numeric/type-limit-comparisons-6130.rs
index c675a8a41dd..54b3f631e67 100644
--- a/tests/ui/issues/issue-6130.rs
+++ b/tests/ui/numeric/type-limit-comparisons-6130.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/6130
 //@ run-pass
 
 pub fn main() {
diff --git a/tests/ui/parser/bad-lit-suffixes.rs b/tests/ui/parser/bad-lit-suffixes.rs
index 91b32fd4539..0a1ee120730 100644
--- a/tests/ui/parser/bad-lit-suffixes.rs
+++ b/tests/ui/parser/bad-lit-suffixes.rs
@@ -38,10 +38,14 @@ fn g() {}
 
 #[link(name = "string"suffix)]
 //~^ ERROR suffixes on string literals are invalid
-//~| ERROR malformed `link` attribute input
 extern "C" {}
 
 #[rustc_layout_scalar_valid_range_start(0suffix)]
 //~^ ERROR invalid suffix `suffix` for number literal
-//~| ERROR malformed `rustc_layout_scalar_valid_range_start` attribute input
 struct S;
+
+impl S {
+    #[rustc_confusables("blah"suffix)]
+    //~^ ERROR suffixes on string literals are invalid
+    fn woof() { }
+}
diff --git a/tests/ui/parser/bad-lit-suffixes.stderr b/tests/ui/parser/bad-lit-suffixes.stderr
index 217cc74b8eb..6c3dbbcec64 100644
--- a/tests/ui/parser/bad-lit-suffixes.stderr
+++ b/tests/ui/parser/bad-lit-suffixes.stderr
@@ -160,48 +160,20 @@ error: suffixes on string literals are invalid
 LL | #[link(name = "string"suffix)]
    |               ^^^^^^^^^^^^^^ invalid suffix `suffix`
 
-error[E0539]: malformed `link` attribute input
-  --> $DIR/bad-lit-suffixes.rs:39:1
-   |
-LL | #[link(name = "string"suffix)]
-   | ^^^^^^^---------------------^^
-   |        |
-   |        expected this to be of the form `name = "..."`
-   |
-   = note: for more information, visit <https://doc.rust-lang.org/reference/items/external-blocks.html#the-link-attribute>
-help: try changing it to one of the following valid forms of the attribute
-   |
-LL - #[link(name = "string"suffix)]
-LL + #[link(name = "...")]
-   |
-LL - #[link(name = "string"suffix)]
-LL + #[link(name = "...", import_name_type = "decorated|noprefix|undecorated")]
-   |
-LL - #[link(name = "string"suffix)]
-LL + #[link(name = "...", kind = "dylib|static|...")]
-   |
-LL - #[link(name = "string"suffix)]
-LL + #[link(name = "...", kind = "dylib|static|...", wasm_import_module = "...", import_name_type = "decorated|noprefix|undecorated")]
-   |
-   = and 1 other candidate
-
 error: invalid suffix `suffix` for number literal
-  --> $DIR/bad-lit-suffixes.rs:44:41
+  --> $DIR/bad-lit-suffixes.rs:43:41
    |
 LL | #[rustc_layout_scalar_valid_range_start(0suffix)]
    |                                         ^^^^^^^ invalid suffix `suffix`
    |
    = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
 
-error[E0539]: malformed `rustc_layout_scalar_valid_range_start` attribute input
-  --> $DIR/bad-lit-suffixes.rs:44:1
+error: suffixes on string literals are invalid
+  --> $DIR/bad-lit-suffixes.rs:48:25
    |
-LL | #[rustc_layout_scalar_valid_range_start(0suffix)]
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------^^
-   | |                                       |
-   | |                                       expected an integer literal here
-   | help: must be of the form: `#[rustc_layout_scalar_valid_range_start(start)]`
+LL |     #[rustc_confusables("blah"suffix)]
+   |                         ^^^^^^^^^^^^ invalid suffix `suffix`
 
-error: aborting due to 23 previous errors; 2 warnings emitted
+error: aborting due to 22 previous errors; 2 warnings emitted
 
 For more information about this error, try `rustc --explain E0539`.
diff --git a/tests/ui/issues/issue-5572.rs b/tests/ui/parser/partial-eq-trait-bound-5572.rs
index f27744ef0ac..7ee0cdc43ee 100644
--- a/tests/ui/issues/issue-5572.rs
+++ b/tests/ui/parser/partial-eq-trait-bound-5572.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/5572
 //@ check-pass
 #![allow(dead_code)]
 
diff --git a/tests/ui/issues/auxiliary/iss.rs b/tests/ui/privacy/auxiliary/iss-6919.rs
index cf32f6c2d5d..cf32f6c2d5d 100644
--- a/tests/ui/issues/auxiliary/iss.rs
+++ b/tests/ui/privacy/auxiliary/iss-6919.rs
diff --git a/tests/ui/issues/issue-6919.rs b/tests/ui/privacy/deref-separate-compile-unit-6919.rs
index 7fb8a2f33bc..5d8934987e5 100644
--- a/tests/ui/issues/issue-6919.rs
+++ b/tests/ui/privacy/deref-separate-compile-unit-6919.rs
@@ -1,7 +1,7 @@
+// https://github.com/rust-lang/rust/issues/6919
 //@ run-pass
 #![allow(unused_attributes)]
-//@ aux-build:iss.rs
-
+//@ aux-build:iss-6919.rs
 
 extern crate issue6919_3;
 
diff --git a/tests/ui/issues/issue-55376.rs b/tests/ui/privacy/pub-restricted-path-usage-55376.rs
index 5a6862b6530..ca4e27c30a8 100644
--- a/tests/ui/issues/issue-55376.rs
+++ b/tests/ui/privacy/pub-restricted-path-usage-55376.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/55376
 //@ run-pass
 // Tests that paths in `pub(...)` don't fail HIR verification.
 
diff --git a/tests/ui/issues/issue-53728.rs b/tests/ui/repr/packed-struct-with-enum-53728.rs
index 364965228c6..6ce65ed634f 100644
--- a/tests/ui/issues/issue-53728.rs
+++ b/tests/ui/repr/packed-struct-with-enum-53728.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/53728
 //@ run-pass
 
 #![allow(dead_code)]
diff --git a/tests/ui/issues/issue-6936.rs b/tests/ui/resolve/duplicate-name-in-module-6936.rs
index e9aa80b4eb3..ae9282c0c24 100644
--- a/tests/ui/issues/issue-6936.rs
+++ b/tests/ui/resolve/duplicate-name-in-module-6936.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/6936
 struct T;
 
 mod t1 {
@@ -30,5 +31,4 @@ mod t6 {
     impl Foo {} // ok
 }
 
-
 fn main() {}
diff --git a/tests/ui/issues/issue-6936.stderr b/tests/ui/resolve/duplicate-name-in-module-6936.stderr
index 03cc50636b4..76bb8f57386 100644
--- a/tests/ui/issues/issue-6936.stderr
+++ b/tests/ui/resolve/duplicate-name-in-module-6936.stderr
@@ -1,5 +1,5 @@
 error[E0428]: the name `Foo` is defined multiple times
-  --> $DIR/issue-6936.rs:5:5
+  --> $DIR/duplicate-name-in-module-6936.rs:6:5
    |
 LL |     type Foo = crate::T;
    |     -------------------- previous definition of the type `Foo` here
@@ -9,7 +9,7 @@ LL |     mod Foo {}
    = note: `Foo` must be defined only once in the type namespace of this module
 
 error[E0428]: the name `Foo` is defined multiple times
-  --> $DIR/issue-6936.rs:10:5
+  --> $DIR/duplicate-name-in-module-6936.rs:11:5
    |
 LL |     type Foo = crate::T;
    |     -------------------- previous definition of the type `Foo` here
@@ -19,7 +19,7 @@ LL |     struct Foo;
    = note: `Foo` must be defined only once in the type namespace of this module
 
 error[E0428]: the name `Foo` is defined multiple times
-  --> $DIR/issue-6936.rs:15:5
+  --> $DIR/duplicate-name-in-module-6936.rs:16:5
    |
 LL |     type Foo = crate::T;
    |     -------------------- previous definition of the type `Foo` here
@@ -29,7 +29,7 @@ LL |     enum Foo {}
    = note: `Foo` must be defined only once in the type namespace of this module
 
 error[E0428]: the name `Bar` is defined multiple times
-  --> $DIR/issue-6936.rs:25:5
+  --> $DIR/duplicate-name-in-module-6936.rs:26:5
    |
 LL |     type Bar<T> = T;
    |     ---------------- previous definition of the type `Bar` here
diff --git a/tests/ui/issues/issue-7044.rs b/tests/ui/resolve/unit-like-struct-masks-constant-7044.rs
index a6e22bc5237..f48dd695f01 100644
--- a/tests/ui/issues/issue-7044.rs
+++ b/tests/ui/resolve/unit-like-struct-masks-constant-7044.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/7044
 static X: isize = 0;
 struct X; //~ ERROR the name `X` is defined multiple times
 
diff --git a/tests/ui/issues/issue-7044.stderr b/tests/ui/resolve/unit-like-struct-masks-constant-7044.stderr
index 9d1fb3a10dd..48aa6fce455 100644
--- a/tests/ui/issues/issue-7044.stderr
+++ b/tests/ui/resolve/unit-like-struct-masks-constant-7044.stderr
@@ -1,5 +1,5 @@
 error[E0428]: the name `X` is defined multiple times
-  --> $DIR/issue-7044.rs:2:1
+  --> $DIR/unit-like-struct-masks-constant-7044.rs:3:1
    |
 LL | static X: isize = 0;
    | -------------------- previous definition of the value `X` here
diff --git a/tests/ui/sanitizer/cfi/no_builtins.rs b/tests/ui/sanitizer/cfi/no_builtins.rs
new file mode 100644
index 00000000000..949057689ab
--- /dev/null
+++ b/tests/ui/sanitizer/cfi/no_builtins.rs
@@ -0,0 +1,22 @@
+// Verifies that `#![no_builtins]` crates can be built with linker-plugin-lto and CFI.
+// See Issue #142284
+//
+//@ needs-sanitizer-cfi
+//@ compile-flags: -Clinker-plugin-lto -Copt-level=0 -Zsanitizer=cfi -Ctarget-feature=-crt-static
+//@ compile-flags: --crate-type rlib
+//@ build-pass
+
+#![no_builtins]
+#![no_std]
+
+pub static FUNC: fn() = initializer;
+
+pub fn initializer() {
+    call(fma_with_fma);
+}
+
+pub fn call(fn_ptr: fn()) {
+    fn_ptr();
+}
+
+pub fn fma_with_fma() {}
diff --git a/tests/ui/issues/issue-55380.rs b/tests/ui/specialization/trait-specialization-default-methods-55380.rs
index 54894cdede0..b3d79fb5ffb 100644
--- a/tests/ui/issues/issue-55380.rs
+++ b/tests/ui/specialization/trait-specialization-default-methods-55380.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/55380
 //@ run-pass
 #![feature(specialization)]
 //~^ WARN the feature `specialization` is incomplete
diff --git a/tests/ui/issues/issue-55380.stderr b/tests/ui/specialization/trait-specialization-default-methods-55380.stderr
index 403844c726f..f7c1903da62 100644
--- a/tests/ui/issues/issue-55380.stderr
+++ b/tests/ui/specialization/trait-specialization-default-methods-55380.stderr
@@ -1,5 +1,5 @@
 warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-55380.rs:2:12
+  --> $DIR/trait-specialization-default-methods-55380.rs:3:12
    |
 LL | #![feature(specialization)]
    |            ^^^^^^^^^^^^^^
diff --git a/tests/ui/issues/issue-7364.rs b/tests/ui/static/global-variable-promotion-error-7364.rs
index 4ce9beb68cd..dba4a484d61 100644
--- a/tests/ui/issues/issue-7364.rs
+++ b/tests/ui/static/global-variable-promotion-error-7364.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/7364
 use std::cell::RefCell;
 
 // Regression test for issue 7364
diff --git a/tests/ui/issues/issue-7364.stderr b/tests/ui/static/global-variable-promotion-error-7364.stderr
index a47a90c90ce..b9d75676bef 100644
--- a/tests/ui/issues/issue-7364.stderr
+++ b/tests/ui/static/global-variable-promotion-error-7364.stderr
@@ -1,5 +1,5 @@
 error[E0277]: `RefCell<isize>` cannot be shared between threads safely
-  --> $DIR/issue-7364.rs:4:15
+  --> $DIR/global-variable-promotion-error-7364.rs:5:15
    |
 LL | static boxed: Box<RefCell<isize>> = Box::new(RefCell::new(0));
    |               ^^^^^^^^^^^^^^^^^^^ `RefCell<isize>` cannot be shared between threads safely
@@ -12,7 +12,7 @@ note: required because it appears within the type `Box<RefCell<isize>>`
    = note: shared static variables must have a type that implements `Sync`
 
 error[E0015]: cannot call non-const associated function `Box::<RefCell<isize>>::new` in statics
-  --> $DIR/issue-7364.rs:4:37
+  --> $DIR/global-variable-promotion-error-7364.rs:5:37
    |
 LL | static boxed: Box<RefCell<isize>> = Box::new(RefCell::new(0));
    |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui/issues/issue-5917.rs b/tests/ui/static/static-list-initialization-5917.rs
index 8e91b1052a2..c6c32f7582e 100644
--- a/tests/ui/issues/issue-5917.rs
+++ b/tests/ui/static/static-list-initialization-5917.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/5917
 //@ run-pass
 #![allow(non_upper_case_globals)]
 
diff --git a/tests/ui/issues/issue-5688.rs b/tests/ui/static/static-struct-initialization-5688.rs
index a7db1dfb15f..6a4c2f45b6b 100644
--- a/tests/ui/issues/issue-5688.rs
+++ b/tests/ui/static/static-struct-initialization-5688.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/5688
 //@ run-pass
 /*
 # Corrupted initialization in the static struct
diff --git a/tests/ui/structs-enums/auxiliary/aux-8044.rs b/tests/ui/structs/auxiliary/aux-8044.rs
index 2ec25f51cde..2ec25f51cde 100644
--- a/tests/ui/structs-enums/auxiliary/aux-8044.rs
+++ b/tests/ui/structs/auxiliary/aux-8044.rs
diff --git a/tests/ui/structs-enums/struct-and-enum-usage-8044.rs b/tests/ui/structs/btree-struct-usage-8044.rs
index 9b544f33f1c..9b544f33f1c 100644
--- a/tests/ui/structs-enums/struct-and-enum-usage-8044.rs
+++ b/tests/ui/structs/btree-struct-usage-8044.rs
diff --git a/tests/ui/issues/issue-6344-let.rs b/tests/ui/structs/destructuring-struct-with-dtor-6344.rs
index 1e1bdfa17be..b107a99e89f 100644
--- a/tests/ui/issues/issue-6344-let.rs
+++ b/tests/ui/structs/destructuring-struct-with-dtor-6344.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/6344
 //@ run-pass
 #![allow(non_shorthand_field_patterns)]
 
diff --git a/tests/ui/issues/issue-5439.rs b/tests/ui/structs/nonexistent-struct-field-error-5439.rs
index 852b264dc5d..b2b3293ac91 100644
--- a/tests/ui/issues/issue-5439.rs
+++ b/tests/ui/structs/nonexistent-struct-field-error-5439.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/5439
 struct Foo {
     foo: isize,
 }
diff --git a/tests/ui/issues/issue-5439.stderr b/tests/ui/structs/nonexistent-struct-field-error-5439.stderr
index 6d1d74e3045..b560772fbf0 100644
--- a/tests/ui/issues/issue-5439.stderr
+++ b/tests/ui/structs/nonexistent-struct-field-error-5439.stderr
@@ -1,5 +1,5 @@
 error[E0560]: struct `Foo` has no field named `nonexistent`
-  --> $DIR/issue-5439.rs:11:31
+  --> $DIR/nonexistent-struct-field-error-5439.rs:12:31
    |
 LL |         return Box::new(Foo { nonexistent: self, foo: i });
    |                               ^^^^^^^^^^^ `Foo` does not have this field
diff --git a/tests/ui/issues/issue-5666.rs b/tests/ui/traits/dynamic-dispatch-trait-objects-5666.rs
index 76e2f8229a0..e335949d832 100644
--- a/tests/ui/issues/issue-5666.rs
+++ b/tests/ui/traits/dynamic-dispatch-trait-objects-5666.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/5666
 //@ run-pass
 
 struct Dog {
@@ -14,7 +15,6 @@ impl Barks for Dog {
     }
 }
 
-
 pub fn main() {
     let snoopy = Box::new(Dog{name: "snoopy".to_string()});
     let bubbles = Box::new(Dog{name: "bubbles".to_string()});
diff --git a/tests/ui/issues/issue-53568.rs b/tests/ui/traits/nll-ice-custom-type-ops-53568.rs
index 9862d4ced12..9b240cdc190 100644
--- a/tests/ui/issues/issue-53568.rs
+++ b/tests/ui/traits/nll-ice-custom-type-ops-53568.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/53568
 // Regression test for an NLL-related ICE (#53568) -- we failed to
 // resolve inference variables in "custom type-ops".
 //
diff --git a/tests/ui/issues/issue-5883.rs b/tests/ui/traits/opaque-trait-size-error-5883.rs
index dd4753e0344..e39e24e7342 100644
--- a/tests/ui/issues/issue-5883.rs
+++ b/tests/ui/traits/opaque-trait-size-error-5883.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/5883
 trait A {}
 
 struct Struct {
diff --git a/tests/ui/issues/issue-5883.stderr b/tests/ui/traits/opaque-trait-size-error-5883.stderr
index 2ca437b8c47..78de250b19a 100644
--- a/tests/ui/issues/issue-5883.stderr
+++ b/tests/ui/traits/opaque-trait-size-error-5883.stderr
@@ -1,19 +1,19 @@
 error[E0277]: the size for values of type `(dyn A + 'static)` cannot be known at compilation time
-  --> $DIR/issue-5883.rs:9:6
+  --> $DIR/opaque-trait-size-error-5883.rs:10:6
    |
 LL | ) -> Struct {
    |      ^^^^^^ doesn't have a size known at compile-time
    |
    = help: within `Struct`, the trait `Sized` is not implemented for `(dyn A + 'static)`
 note: required because it appears within the type `Struct`
-  --> $DIR/issue-5883.rs:3:8
+  --> $DIR/opaque-trait-size-error-5883.rs:4:8
    |
 LL | struct Struct {
    |        ^^^^^^
    = note: the return type of a function must have a statically known size
 
 error[E0277]: the size for values of type `(dyn A + 'static)` cannot be known at compilation time
-  --> $DIR/issue-5883.rs:8:8
+  --> $DIR/opaque-trait-size-error-5883.rs:9:8
    |
 LL |     r: dyn A + 'static
    |        ^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
diff --git a/tests/ui/traits/self-implements-kinds-in-default-methods-8171.rs b/tests/ui/traits/self-not-send-in-default-method-8171.rs
index 59ea62c7690..59ea62c7690 100644
--- a/tests/ui/traits/self-implements-kinds-in-default-methods-8171.rs
+++ b/tests/ui/traits/self-not-send-in-default-method-8171.rs
diff --git a/tests/ui/issues/issue-6898.rs b/tests/ui/traits/trait-implementation-generic-access-6898.rs
index c810acaf61b..e9437b1c522 100644
--- a/tests/ui/issues/issue-6898.rs
+++ b/tests/ui/traits/trait-implementation-generic-access-6898.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/6898
 //@ check-pass
 
 use std::mem;
diff --git a/tests/ui/issues/issue-5988.rs b/tests/ui/traits/trait-implementation-restriction-5988.rs
index b7527d9bea8..d3a5b10569b 100644
--- a/tests/ui/issues/issue-5988.rs
+++ b/tests/ui/traits/trait-implementation-restriction-5988.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/5988
 //@ run-pass
 
 trait B {
diff --git a/tests/ui/traits/trait-implementation-and-usage-7563.rs b/tests/ui/traits/trait-object-lifetime-bounds-7563.rs
index 8cfc7a14ffe..8cfc7a14ffe 100644
--- a/tests/ui/traits/trait-implementation-and-usage-7563.rs
+++ b/tests/ui/traits/trait-object-lifetime-bounds-7563.rs
diff --git a/tests/ui/issues/issue-7344.rs b/tests/ui/unreachable-code/boolean-negation-in-unreachable-code-7344.rs
index 406b24634f5..8fd091872c3 100644
--- a/tests/ui/issues/issue-7344.rs
+++ b/tests/ui/unreachable-code/boolean-negation-in-unreachable-code-7344.rs
@@ -1,3 +1,4 @@
+// https://github.com/rust-lang/rust/issues/7344
 //@ run-pass
 #![allow(unused_must_use)]
 
diff --git a/tests/ui/issues/auxiliary/issue-5844-aux.rs b/tests/ui/unsafe/auxiliary/aux-5844.rs
index ea83378cad6..ea83378cad6 100644
--- a/tests/ui/issues/auxiliary/issue-5844-aux.rs
+++ b/tests/ui/unsafe/auxiliary/aux-5844.rs
diff --git a/tests/ui/unsafe/extern-function-requires-unsafe-5844.rs b/tests/ui/unsafe/extern-function-requires-unsafe-5844.rs
new file mode 100644
index 00000000000..11863ce647a
--- /dev/null
+++ b/tests/ui/unsafe/extern-function-requires-unsafe-5844.rs
@@ -0,0 +1,8 @@
+// https://github.com/rust-lang/rust/issues/5844
+//@aux-build:aux-5844.rs
+
+extern crate aux_5844;
+
+fn main() {
+    aux_5844::rand(); //~ ERROR: requires unsafe
+}
diff --git a/tests/ui/issues/issue-5844.stderr b/tests/ui/unsafe/extern-function-requires-unsafe-5844.stderr
index bae917fa72c..44dee178991 100644
--- a/tests/ui/issues/issue-5844.stderr
+++ b/tests/ui/unsafe/extern-function-requires-unsafe-5844.stderr
@@ -1,8 +1,8 @@
 error[E0133]: call to unsafe function `rand` is unsafe and requires unsafe function or block
-  --> $DIR/issue-5844.rs:6:5
+  --> $DIR/extern-function-requires-unsafe-5844.rs:7:5
    |
-LL |     issue_5844_aux::rand();
-   |     ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
+LL |     aux_5844::rand();
+   |     ^^^^^^^^^^^^^^^^ call to unsafe function
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior