@@ -1170,25 +1170,14 @@ pub mod parse {
11701170 }
11711171
11721172 pub ( crate ) fn parse_sanitizers ( slot : & mut SanitizerSet , v : Option < & str > ) -> bool {
1173- if let Some ( v) = v {
1174- for s in v. split ( ',' ) {
1175- * slot |= match s {
1176- "address" => SanitizerSet :: ADDRESS ,
1177- "cfi" => SanitizerSet :: CFI ,
1178- "dataflow" => SanitizerSet :: DATAFLOW ,
1179- "kcfi" => SanitizerSet :: KCFI ,
1180- "kernel-address" => SanitizerSet :: KERNELADDRESS ,
1181- "leak" => SanitizerSet :: LEAK ,
1182- "memory" => SanitizerSet :: MEMORY ,
1183- "memtag" => SanitizerSet :: MEMTAG ,
1184- "shadow-call-stack" => SanitizerSet :: SHADOWCALLSTACK ,
1185- "thread" => SanitizerSet :: THREAD ,
1186- "hwaddress" => SanitizerSet :: HWADDRESS ,
1187- "safestack" => SanitizerSet :: SAFESTACK ,
1188- _ => return false ,
1189- }
1173+ if let Some ( s) = v {
1174+ let sanitizer_set = SanitizerSet :: from_comma_list ( s) ;
1175+ if sanitizer_set. is_ok ( ) {
1176+ * slot |= sanitizer_set. unwrap ( ) ;
1177+ true
1178+ } else {
1179+ false
11901180 }
1191- true
11921181 } else {
11931182 false
11941183 }
@@ -2066,6 +2055,8 @@ options! {
20662055 "output remarks for these optimization passes (space separated, or \" all\" )" ) ,
20672056 rpath: bool = ( false , parse_bool, [ UNTRACKED ] ,
20682057 "set rpath values in libs/exes (default: no)" ) ,
2058+ sanitize: SanitizerSet = ( SanitizerSet :: empty( ) , parse_sanitizers, [ TRACKED ] ,
2059+ "use one or multiple sanitizers" ) ,
20692060 save_temps: bool = ( false , parse_bool, [ UNTRACKED ] ,
20702061 "save all temporary output files during compilation (default: no)" ) ,
20712062 soft_float: bool = ( false , parse_bool, [ TRACKED ] ,
@@ -2476,8 +2467,6 @@ written to standard error output)"),
24762467 retpoline_external_thunk: bool = ( false , parse_bool, [ TRACKED TARGET_MODIFIER ] ,
24772468 "enables retpoline-external-thunk, retpoline-indirect-branches and retpoline-indirect-calls \
24782469 target features (default: no)") ,
2479- sanitizer: SanitizerSet = ( SanitizerSet :: empty( ) , parse_sanitizers, [ TRACKED ] ,
2480- "use a sanitizer" ) ,
24812470 sanitizer_cfi_canonical_jump_tables: Option <bool > = ( Some ( true ) , parse_opt_bool, [ TRACKED ] ,
24822471 "enable canonical jump tables (default: yes)" ) ,
24832472 sanitizer_cfi_generalize_pointers: Option <bool > = ( None , parse_opt_bool, [ TRACKED ] ,
0 commit comments