diff options
| author | Nicholas Nethercote <nnethercote@mozilla.com> | 2020-04-02 15:58:07 +1100 |
|---|---|---|
| committer | Nicholas Nethercote <nnethercote@mozilla.com> | 2020-04-19 19:53:54 +1000 |
| commit | 7ec7b572a973b565b74f02e459906f647065ebab (patch) | |
| tree | 3c15609db4b5ed23dd34525ecdd4acb4be8604e5 | |
| parent | 0b92969b8f5b328da13021a89b982f68b668b87d (diff) | |
| download | rust-7ec7b572a973b565b74f02e459906f647065ebab.tar.gz rust-7ec7b572a973b565b74f02e459906f647065ebab.zip | |
Fix the `-Zsanitizer_memory_track_origins` error message.
Currently, if you give a bogus value like `-Zsanitizer-memory-track-origins=99` you get this incorrect error: ``` error: debugging option `sanitizer-memory-track-origins` takes no value ``` This commit fixes it so it gives this instead: ``` error: incorrect value `99` for debugging option `sanitizer-memory-track-origins` - 0, 1, or 2 was expected ``` The commit also makes `parse_sanitizer_memory_track_origins` more readable.
| -rw-r--r-- | src/librustc_session/options.rs | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/src/librustc_session/options.rs b/src/librustc_session/options.rs index 08c623457c2..dea7ffd6bbb 100644 --- a/src/librustc_session/options.rs +++ b/src/librustc_session/options.rs @@ -259,7 +259,8 @@ macro_rules! options { Some("one of: `address`, `leak`, `memory` or `thread`"); pub const parse_sanitizer_list: Option<&str> = Some("comma separated list of sanitizers"); - pub const parse_sanitizer_memory_track_origins: Option<&str> = None; + pub const parse_sanitizer_memory_track_origins: Option<&str> = + Some("0, 1, or 2"); pub const parse_cfguard: Option<&str> = Some("either `disabled`, `nochecks`, or `checks`"); pub const parse_linker_flavor: Option<&str> = @@ -491,18 +492,11 @@ macro_rules! options { } fn parse_sanitizer_memory_track_origins(slot: &mut usize, v: Option<&str>) -> bool { - match v.map(|s| s.parse()) { - None => { - *slot = 2; - true - } - Some(Ok(i)) if i <= 2 => { - *slot = i; - true - } - _ => { - false - } + match v { + Some("2") | None => { *slot = 2; true } + Some("1") => { *slot = 1; true } + Some("0") => { *slot = 0; true } + Some(_) => false, } } |
