The different generations of ARM floating point VFP correspond to the
LLVM CPU features named `vfp2`, `vfp3`, and `vfp4`; they are now
exposed in Rust under the same names.
This commit fixes some crashes that would occour when checking if the
`vfp` feature exists (the crash occurs because the linear scan of the
LLVM feature goes past the end of the features whenever it searches
for a feature that does not exist in the LLVM tables).
pub fn add_configuration(cfg: &mut ast::CrateConfig, sess: &Session) {
let target_machine = create_target_machine(sess);
+ // WARNING: the features must be known to LLVM or the feature
+ // detection code will walk past the end of the feature array,
+ // leading to crashes.
+
let arm_whitelist = [
"neon\0",
- "vfp\0",
+ "vfp2\0",
+ "vfp3\0",
+ "vfp4\0",
];
let x86_whitelist = [