File tree Expand file tree Collapse file tree 1 file changed +21
-0
lines changed 
compiler/rustc_target/src/spec Expand file tree Collapse file tree 1 file changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -2593,6 +2593,18 @@ impl TargetOptions {
25932593                . collect ( ) ; 
25942594        } 
25952595    } 
2596+ 
2597+     pub ( crate )  fn  has_neg_feature ( & self ,  search_feature :  & str )  -> bool  { 
2598+         self . features . split ( ',' ) . any ( |f| { 
2599+             if  let  Some ( f)  = f. strip_prefix ( '-' ) 
2600+                 && f == search_feature
2601+             { 
2602+                 true 
2603+             }  else  { 
2604+                 false 
2605+             } 
2606+         } ) 
2607+     } 
25962608} 
25972609
25982610impl  Default  for  TargetOptions  { 
@@ -3108,6 +3120,15 @@ impl Target {
31083120            _ => { } 
31093121        } 
31103122
3123+         // Check that aarch64 hardfloat targets do not disable neon or fp-armv8 (which are 
3124+         // on-by-default). 
3125+         if  self . arch  == "aarch64"  && self . abi  != "softfloat"  { 
3126+             check ! ( 
3127+                 !self . has_neg_feature( "neon" )  && !self . has_neg_feature( "fp-armv8" ) , 
3128+                 "aarch64 hardfloat targets must not disable the `neon` or `fp-armv8` target features" 
3129+             ) ; 
3130+         } 
3131+ 
31113132        Ok ( ( ) ) 
31123133    } 
31133134
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments