location-detail: disable all location details when passed none
Prior to this fix, `-Z location-detail` provided no mechanism for disabling all location details. This commit also adds a test case to verify that this option continues to work as intended, and clarifies the documentation of this option.
This commit is contained in:
parent
05e678ccca
commit
6dea21a4a2
@ -393,8 +393,7 @@ mod desc {
|
||||
"either a boolean (`yes`, `no`, `on`, `off`, etc), `thin`, `fat`, or omitted";
|
||||
pub const parse_linker_plugin_lto: &str =
|
||||
"either a boolean (`yes`, `no`, `on`, `off`, etc), or the path to the linker plugin";
|
||||
pub const parse_location_detail: &str =
|
||||
"comma separated list of location details to track: `file`, `line`, or `column`";
|
||||
pub const parse_location_detail: &str = "either `none`, or a comma separated list of location details to track: `file`, `line`, or `column`";
|
||||
pub const parse_switch_with_opt_path: &str =
|
||||
"an optional path to the profiling data output directory";
|
||||
pub const parse_merge_functions: &str = "one of: `disabled`, `trampolines`, or `aliases`";
|
||||
@ -549,6 +548,9 @@ mod parse {
|
||||
ld.line = false;
|
||||
ld.file = false;
|
||||
ld.column = false;
|
||||
if v == "none" {
|
||||
return true;
|
||||
}
|
||||
for s in v.split(',') {
|
||||
match s {
|
||||
"file" => ld.file = true,
|
||||
@ -1360,8 +1362,9 @@ options! {
|
||||
llvm_time_trace: bool = (false, parse_bool, [UNTRACKED],
|
||||
"generate JSON tracing data file from LLVM data (default: no)"),
|
||||
location_detail: LocationDetail = (LocationDetail::all(), parse_location_detail, [TRACKED],
|
||||
"comma separated list of location details to be tracked when using caller_location \
|
||||
valid options are `file`, `line`, and `column` (default: all)"),
|
||||
"what location details should be tracked when using caller_location, either \
|
||||
`none`, or a comma separated list of location details, for which \
|
||||
valid options are `file`, `line`, and `column` (default: `file,line,column`)"),
|
||||
ls: bool = (false, parse_bool, [UNTRACKED],
|
||||
"list the symbols defined by a library crate (default: no)"),
|
||||
macro_backtrace: bool = (false, parse_bool, [UNTRACKED],
|
||||
|
@ -17,8 +17,9 @@ within this list are:
|
||||
- `line` - the source line of the panic will be included in the panic output
|
||||
- `column` - the source column of the panic will be included in the panic output
|
||||
|
||||
Any combination of these three options are supported. If this option is not specified,
|
||||
all three are included by default.
|
||||
Any combination of these three options are supported. Alternatively, you can pass
|
||||
`none` to this option, which results in no location details being tracked.
|
||||
If this option is not specified, all three are included by default.
|
||||
|
||||
An example of a panic output when using `-Z location-detail=line`:
|
||||
```text
|
||||
|
@ -69,7 +69,7 @@
|
||||
-Z link-only=val -- link the `.rlink` file generated by `-Z no-link` (default: no)
|
||||
-Z llvm-plugins=val -- a list LLVM plugins to enable (space separated)
|
||||
-Z llvm-time-trace=val -- generate JSON tracing data file from LLVM data (default: no)
|
||||
-Z location-detail=val -- comma separated list of location details to be tracked when using caller_location valid options are `file`, `line`, and `column` (default: all)
|
||||
-Z location-detail=val -- what location details should be tracked when using caller_location, either `none`, or a comma separated list of location details, for which valid options are `file`, `line`, and `column` (default: `file,line,column`)
|
||||
-Z ls=val -- list the symbols defined by a library crate (default: no)
|
||||
-Z macro-backtrace=val -- show macro backtraces (default: no)
|
||||
-Z merge-functions=val -- control the operation of the MergeFunctions LLVM pass, taking the same values as the target option of the same name
|
||||
|
@ -0,0 +1,8 @@
|
||||
// run-fail
|
||||
// check-run-results
|
||||
// compile-flags: -Zlocation-detail=none
|
||||
// exec-env:RUST_BACKTRACE=0
|
||||
|
||||
fn main() {
|
||||
panic!("no location info");
|
||||
}
|
@ -0,0 +1,2 @@
|
||||
thread 'main' panicked at 'no location info', <redacted>:0:0
|
||||
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
Loading…
x
Reference in New Issue
Block a user