rustdoc: disable forbidden #[target_feature] check
authorRalf Jung <post@ralfj.de>
Tue, 25 Feb 2025 19:26:12 +0000 (20:26 +0100)
committerPeter Michael Green <plugwash@debian.org>
Tue, 8 Apr 2025 23:18:15 +0000 (23:18 +0000)
(cherry picked from commit b6f22400002f7921feed13e35852e3041cf2b145)

compiler/rustc_codegen_ssa/src/target_features.rs

index 7e80d014ea282ff0d960da413b4df6b482295dab..d673cd6e6b4f8f1d0214492c9bfd26c60ec1e53f 100644 (file)
@@ -149,8 +149,11 @@ pub(crate) fn provide(providers: &mut Providers) {
             assert_eq!(cnum, LOCAL_CRATE);
             let target = &tcx.sess.target;
             if tcx.sess.opts.actually_rustdoc {
-                // rustdoc needs to be able to document functions that use all the features, so
-                // whitelist them all
+                // HACK: rustdoc would like to pretend that we have all the target features, so we
+                // have to merge all the lists into one. The result has a "random" stability
+                // (depending on the order in which we consider features); all places that check
+                // target stability are expected to check `actually_rustdoc` and do nothing when
+                // that is set.
                 rustc_target::target_features::all_rust_features()
                     .map(|(a, b)| (a.to_string(), b.compute_toggleability(target)))
                     .collect()