@@ -816,6 +816,8 @@ macro_rules! options {
816
816
Some ( "crate=integer" ) ;
817
817
pub const parse_unpretty: Option <& str > =
818
818
Some ( "`string` or `string=string`" ) ;
819
+ pub const parse_treat_err_as_bug: Option <& str > =
820
+ Some ( "either no value or a number bigger than 0" ) ;
819
821
pub const parse_lto: Option <& str > =
820
822
Some ( "either a boolean (`yes`, `no`, `on`, `off`, etc), `thin`, \
821
823
`fat`, or omitted") ;
@@ -1022,6 +1024,13 @@ macro_rules! options {
1022
1024
}
1023
1025
}
1024
1026
1027
+ fn parse_treat_err_as_bug( slot: & mut Option <usize >, v: Option <& str >) -> bool {
1028
+ match v {
1029
+ Some ( s) => { * slot = s. parse( ) . ok( ) . filter( |& x| x != 0 ) ; slot. unwrap_or( 0 ) != 0 }
1030
+ None => { * slot = Some ( 1 ) ; true }
1031
+ }
1032
+ }
1033
+
1025
1034
fn parse_lto( slot: & mut LtoCli , v: Option <& str >) -> bool {
1026
1035
if v. is_some( ) {
1027
1036
let mut bool_arg = None ;
@@ -1234,7 +1243,7 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options,
1234
1243
"parse only; do not compile, assemble, or link" ) ,
1235
1244
no_codegen: bool = ( false , parse_bool, [ TRACKED ] ,
1236
1245
"run all passes except codegen; no output" ) ,
1237
- treat_err_as_bug: Option <usize > = ( None , parse_opt_uint , [ TRACKED ] ,
1246
+ treat_err_as_bug: Option <usize > = ( None , parse_treat_err_as_bug , [ TRACKED ] ,
1238
1247
"treat all errors that occur as bugs" ) ,
1239
1248
report_delayed_bugs: bool = ( false , parse_bool, [ TRACKED ] ,
1240
1249
"immediately print bugs registered with `delay_span_bug`" ) ,
@@ -3212,7 +3221,7 @@ mod tests {
3212
3221
assert ! ( reference. dep_tracking_hash( ) != opts. dep_tracking_hash( ) ) ;
3213
3222
3214
3223
opts = reference. clone ( ) ;
3215
- opts. debugging_opts . treat_err_as_bug = Some ( 0 ) ;
3224
+ opts. debugging_opts . treat_err_as_bug = Some ( 1 ) ;
3216
3225
assert ! ( reference. dep_tracking_hash( ) != opts. dep_tracking_hash( ) ) ;
3217
3226
3218
3227
opts = reference. clone ( ) ;
0 commit comments