Skip to content

Commit

Permalink
Distinguish different vfp? features
Browse files Browse the repository at this point in the history
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).
  • Loading branch information
ranma42 committed Apr 19, 2016
1 parent f942c28 commit 5879ee1
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion src/librustc_driver/target_features.rs
Expand Up @@ -24,9 +24,15 @@ use libc::c_char;
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 = [
Expand Down

0 comments on commit 5879ee1

Please sign in to comment.