whitelist every target feature for rustdoc
This commit is contained in:
parent
a04b88d194
commit
6956bbf61c
2 changed files with 26 additions and 4 deletions
|
|
@ -148,9 +148,17 @@ fn cstr(s: &'static str) -> &CStr {
|
|||
pub fn provide(providers: &mut Providers) {
|
||||
providers.target_features_whitelist = |tcx, cnum| {
|
||||
assert_eq!(cnum, LOCAL_CRATE);
|
||||
Lrc::new(llvm_util::target_feature_whitelist(tcx.sess)
|
||||
.iter()
|
||||
.map(|c| c.to_string())
|
||||
.collect())
|
||||
if tcx.sess.opts.actually_rustdoc {
|
||||
// rustdoc needs to be able to document functions that use all the features, so
|
||||
// whitelist them all
|
||||
Lrc::new(llvm_util::all_known_features()
|
||||
.map(|c| c.to_string())
|
||||
.collect())
|
||||
} else {
|
||||
Lrc::new(llvm_util::target_feature_whitelist(tcx.sess)
|
||||
.iter()
|
||||
.map(|c| c.to_string())
|
||||
.collect())
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -107,6 +107,20 @@ const POWERPC_WHITELIST: &'static [&'static str] = &["altivec",
|
|||
|
||||
const MIPS_WHITELIST: &'static [&'static str] = &["fp64", "msa"];
|
||||
|
||||
/// When rustdoc is running, provide a list of all known features so that all their respective
|
||||
/// primtives may be documented.
|
||||
///
|
||||
/// IMPORTANT: If you're adding another whitelist to the above lists, make sure to add it to this
|
||||
/// iterator!
|
||||
pub fn all_known_features() -> impl Iterator<Item=&'static str> {
|
||||
ARM_WHITELIST.iter().cloned()
|
||||
.chain(AARCH64_WHITELIST.iter().cloned())
|
||||
.chain(X86_WHITELIST.iter().cloned())
|
||||
.chain(HEXAGON_WHITELIST.iter().cloned())
|
||||
.chain(POWERPC_WHITELIST.iter().cloned())
|
||||
.chain(MIPS_WHITELIST.iter().cloned())
|
||||
}
|
||||
|
||||
pub fn to_llvm_feature<'a>(sess: &Session, s: &'a str) -> &'a str {
|
||||
let arch = if sess.target.target.arch == "x86_64" {
|
||||
"x86"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue