Skip to content

Fix DWARF generation for enums#54004

Merged
bors merged 8 commits intorust-lang:masterfrom
tromey:enum-debuginfo
Oct 31, 2018
Merged

Fix DWARF generation for enums#54004
bors merged 8 commits intorust-lang:masterfrom
tromey:enum-debuginfo

Conversation

@tromey
Copy link
Contributor

@tromey tromey commented Sep 6, 2018

The DWARF generated for Rust enums was always somewhat unusual.
Rather than using DWARF constructs directly, it would emit magic field
names like "RUST$ENCODED$ENUM$0$Name" and "RUST$ENUM$DISR". Since
PR #45225, though, even this has not worked -- the ad hoc scheme was
not updated to handle the wider variety of niche-filling layout
optimizations now available.

This patch changes the generated DWARF to use the standard tags meant
for this purpose; namely, DW_TAG_variant and DW_TAG_variant_part.

The patch to implement this went in to LLVM 7. In order to work with
older versions of LLVM, and because LLVM doesn't do anything here for
PDB, the existing code is kept as a fallback mode.

Support for this DWARF is in the Rust lldb and in gdb 8.2.

Closes #32920
Closes #32924
Closes #52762
Closes #53153

@rust-highfive
Copy link
Contributor

r? @nikomatsakis

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Sep 6, 2018
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can get the size and alignment from niche.value directly.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there no method on Integer to do this conversion?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not directly (that I could find) but I can use Integer::fit_unsigned.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, I think you should match on Primitive, convert floats to I32 / I64, and pointers to cx.data_layout().ptr_sized_integer(). That way you don't need to turn an integer back into itself by looking at its size.

@nagisa
Copy link
Member

nagisa commented Sep 6, 2018

This definitely wants a test or two.

EDIT: though I won’t block this PR if they aren’t easy to write.

Copy link
Member

@eddyb eddyb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

r=me with nits fixed

@eddyb
Copy link
Member

eddyb commented Sep 6, 2018

cc @michaelwoerister @alexcrichton

@nikomatsakis
Copy link
Contributor

r? @eddyb

(I pinged him on Discord as I'm not really that familiar with this code. But I see he already left a review before I came back to re-assign. I agree with @nagisa that we could use more tests here :)

@rust-highfive rust-highfive assigned eddyb and unassigned nikomatsakis Sep 6, 2018
@tromey
Copy link
Contributor Author

tromey commented Sep 6, 2018

I can write more tests but note that there are existing debuginfo tests that already cover the ordinary cases. The new test is testing the case that could not be made to work previously.

@rust-highfive

This comment has been minimized.

@tromey
Copy link
Contributor Author

tromey commented Sep 7, 2018

Still investigating that failure. I'd tried things out with llvm 6 but not 5. I somewhat recall having to make a change here for 6; I will try all 3 ways again but if something has to regress, I think we should let it be 5.

@tromey
Copy link
Contributor Author

tromey commented Sep 10, 2018

I built rust against LLVM 5, 6, and rust-llvm; and then I tested each one against gdb 7.11, 8.1, and 8.2.

This found a crash in 8.2, filed: https://sourceware.org/bugzilla/show_bug.cgi?id=23626. I'll fix this before 8.2.1.

I couldn't reproduce the bot's failure; but the bot is using 7.11, and my feeling is that a minor output regression there is nothing to worry about. So, if it persists and there are no objections, I'll just bump the minimum gdb version for the test.

@tromey
Copy link
Contributor Author

tromey commented Sep 11, 2018

I couldn't reproduce the bot's failure

I rebased & tried again and now it failed.

@tromey
Copy link
Contributor Author

tromey commented Sep 11, 2018

I rebased & tried again and now it failed.

At some point I thought I needed to give the variants names, but reverting this and re-testing didn't show any problems.

tromey added a commit to tromey/gdb that referenced this pull request Sep 11, 2018
While testing my Rust compiler patch to fix the DWARF representation
of Rust enums (rust-lang/rust#54004), I found
a gdb crash coming from one of the Rust test cases.

The bug here is that the new variant support in gdb does not handle
the case where there are no variants in the enum.

This patch fixes the problem in a straightforward way.  Note that the
new tests are somewhat lax because I did not want to try to fully fix
this corner case for older compilers.  If you think that's
unacceptable, let meknow.

Tested on x86-64 Fedora 28 using several versions of the Rust
compiler.  I intend to push this to the 8.2 branch as well.

gdb/ChangeLog
2018-09-11  Tom Tromey  <tom@tromey.com>

	PR rust/23626:
	* rust-lang.c (rust_enum_variant): Now static.
	(rust_empty_enum_p): New function.
	(rust_print_enum, rust_evaluate_subexp, rust_print_struct_def):
	Handle empty enum.

gdb/testsuite/ChangeLog
2018-09-11  Tom Tromey  <tom@tromey.com>

	PR rust/23626:
	* gdb.rust/simple.rs (EmptyEnum): New type.
	(main): Use it.
	* gdb.rust/simple.exp (test_one_slice): Add empty enum test.
@tromey
Copy link
Contributor Author

tromey commented Sep 13, 2018

@eddyb can you re-review? I don't think I have sufficient permissions to mark it. Thanks.

@eddyb
Copy link
Member

eddyb commented Sep 13, 2018

@tromey Is the compiler-builtins submodule change intentional?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, I think if you do this then we're "insured" from weird 128-bit bugs:

let niche = (i as u128)
    .wrapping_sub(*niche_variants.start() as u128)
    .wrapping_add(niche_start);
assert_eq!(niche as u64 as u128, niche);
Some(niche as u64)

Note that other than the assert, you also had an overflow bug: if niche_variants.start() is larger than i, subtracting u64s and casting the "negative" result to u128 puts you close to 1 << 64 (because it zero-extends), instead of being a "negative" 128-bit integer.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, do all variants use these size/alignment values? Because each variant has its own "sub-layout" that "fits" inside the enum's layout, and it might make more sense to use those individual ones. Also, instead of UNKNOWN_LINE_NUMBER, you can get each variant's declaration span.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This part is just a bit of DWARF formalism. This is emitting a DW_TAG_variant_part, which according to DWARF is the part of an enclosing structure that can vary. For Rust, the entire thing can vary, so we emit a structure wrapping a variant part, which wraps the variants. Since there can only be one variant part, it makes sense for it to fill the enclosing structure. And, the location of this thing is unimportant as it is basically entirely artificial -- a synthetic construct only necessary because this is how DWARF mandates it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, so it's not per-variant?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nope.

@tromey
Copy link
Contributor Author

tromey commented Sep 13, 2018

@tromey Is the compiler-builtins submodule change intentional?

Nope.

@tromey tromey mentioned this pull request Sep 13, 2018
wallento pushed a commit to wallento/binutils-gdb that referenced this pull request Sep 13, 2018
While testing my Rust compiler patch to fix the DWARF representation
of Rust enums (rust-lang/rust#54004), I found
a gdb crash coming from one of the Rust test cases.

The bug here is that the new variant support in gdb does not handle
the case where there are no variants in the enum.

This patch fixes the problem in a straightforward way.  Note that the
new tests are somewhat lax because I did not want to try to fully fix
this corner case for older compilers.  If you think that's
unacceptable, let meknow.

Tested on x86-64 Fedora 28 using several versions of the Rust
compiler.  I intend to push this to the 8.2 branch as well.

gdb/ChangeLog
2018-09-13  Tom Tromey  <tom@tromey.com>

	PR rust/23626:
	* rust-lang.c (rust_enum_variant): Now static.
	(rust_empty_enum_p): New function.
	(rust_print_enum, rust_evaluate_subexp, rust_print_struct_def):
	Handle empty enum.

gdb/testsuite/ChangeLog
2018-09-13  Tom Tromey  <tom@tromey.com>

	PR rust/23626:
	* gdb.rust/simple.rs (EmptyEnum): New type.
	(main): Use it.
	* gdb.rust/simple.exp (test_one_slice): Add empty enum test.
kraj pushed a commit to kraj/binutils-gdb that referenced this pull request Sep 13, 2018
While testing my Rust compiler patch to fix the DWARF representation
of Rust enums (rust-lang/rust#54004), I found
a gdb crash coming from one of the Rust test cases.

The bug here is that the new variant support in gdb does not handle
the case where there are no variants in the enum.

This patch fixes the problem in a straightforward way.  Note that the
new tests are somewhat lax because I did not want to try to fully fix
this corner case for older compilers.  If you think that's
unacceptable, let meknow.

Tested on x86-64 Fedora 28 using several versions of the Rust
compiler.  I intend to push this to the 8.2 branch as well.

2018-09-13  Tom Tromey  <tom@tromey.com>

	PR rust/23626:
	* rust-lang.c (rust_enum_variant): Now static.
	(rust_empty_enum_p): New function.
	(rust_print_enum, rust_evaluate_subexp, rust_print_struct_def):
	Handle empty enum.

gdb/testsuite/ChangeLog
2018-09-13  Tom Tromey  <tom@tromey.com>

	PR rust/23626:
	* gdb.rust/simple.rs (EmptyEnum): New type.
	(main): Use it.
	* gdb.rust/simple.exp (test_one_slice): Add empty enum test.
@kennytm kennytm added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Oct 25, 2018
@alexcrichton
Copy link
Member

@tromey should this be approved? I think you're approved to merge this as well?

@tromey
Copy link
Contributor Author

tromey commented Oct 26, 2018

Yes, it should be approved. I'll try.

@bors r+

@bors
Copy link
Collaborator

bors commented Oct 26, 2018

📌 Commit 09009d386de739bccc2763e37feb9d5426cf162d has been approved by tromey

@bors
Copy link
Collaborator

bors commented Oct 26, 2018

⌛ Testing commit 09009d386de739bccc2763e37feb9d5426cf162d with merge fc5cf77a07f3bc8db8db5912b39ee3b27380a4bf...

@bors
Copy link
Collaborator

bors commented Oct 26, 2018

💔 Test failed - status-travis

@rust-highfive
Copy link
Contributor

The job x86_64-apple of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
[00:03:35]       Memory: 8 GB
[00:03:35]       Boot ROM Version: VMW71.00V.0.B64.1704110547
[00:03:35]       Apple ROM Info: [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7]Welcome to the Virtual Machine
[00:03:35]       SMC Version (system): 2.8f0
[00:03:35]       Serial Number (system): VM63wa/Yx6SZ
[00:03:35] 
[00:03:35] hw.ncpu: 4
[00:03:35] hw.byteorder: 1234
[00:03:35] hw.memsize: 8589934592
---
[01:32:34] test [debuginfo-both] debuginfo/vec.rs ... ok
[01:32:34] 
[01:32:34] failures:
[01:32:34] 
[01:32:34] ---- [debuginfo-both] debuginfo/generic-tuple-style-enum.rs stdout ----
[01:32:34] NOTE: compiletest thinks it is using LLDB version 902
[01:32:34] NOTE: compiletest thinks it is using LLDB without native rust support
[01:32:34] 
[01:32:34] error: line not found in debugger output: [...]$0 = Case1(0, 31868, 31868, 31868, 31868)
[01:32:34] status: exit code: 0
[01:32:34] command: "/usr/bin/python" "/Users/travis/build/rust-lang/rust/src/etc/lldb_batchmode.py" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/generic-tuple-style-enum/a" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/generic-tuple-style-enum/generic-tuple-style-enum.debugger.script"
[01:32:34] ------------------------------------------
[01:32:34] ------------------------------------------
[01:32:34] LLDB batch-mode script
[01:32:34] ----------------------
[01:32:34] Debugger commands script is '/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/generic-tuple-style-enum/generic-tuple-style-enum.debugger.script'.
[01:32:34] Target executable is '/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/generic-tuple-style-enum/a'.
[01:32:34] Current working directory is '/Users/travis/build/rust-lang/rust'
[01:32:34] Creating a target for '/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/generic-tuple-style-enum/a'
[01:32:34] settings set auto-confirm true
[01:32:34] version
[01:32:34] version
[01:32:34] lldb-902.0.73.1 Swift-4.1 
[01:32:34] command script import /Users/travis/build/rust-lang/rust/./src/etc/lldb_rust_formatters.py
[01:32:34] type summary add --no-value --python-function lldb_rust_formatters.print_val -x ".*" --category Rust
[01:32:34] type category enable Rust
[01:32:34] 
[01:32:34] breakpoint set --file 'generic-tuple-style-enum.rs' --line 107
[01:32:34] Breakpoint 1: where = a`generic_tuple_style_enum::main::h0ff66a8041e01145 + 110 at generic-tuple-style-enum.rs:107, address = 0x0000000100000bbe 
[01:32:34] run
[01:32:34] Hit breakpoint 1.1: where = a`generic_tuple_style_enum::main::h0ff66a8041e01145 + 110 at generic-tuple-style-enum.rs:107, address = 0x0000000100000bbe, resolved, hit count = 1 
[01:32:34] thread 'main' panicked at 'Some tests failed', tools/compiletest/src/main.rs:503:22
[01:32:34] Process 69534 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 frame #0: 0x0000000100000bbe a`generic_tuple_style_enum::main::h0ff66a8041e01145 at generic-tuple-style-enum.rs:107 104 105 let univariant = TheOnlyCase(-1_i64); 106 -> 107  zzz(); // #break 108 } 109 110 fn zzz() { () } Target 0: (a) stopped. Process 69534 launched: '/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/generic-tuple-style-enum/a' (x86_64) 
[01:32:34] print case1
[01:32:34] (generic_tuple_style_enum::Regular<u16, u32, u64>) $0 = Regular<u16, u32, u64> { } 
[01:32:34] print case2
[01:32:34] make: *** [check] Error 1
[01:32:34] (generic_tuple_style_enum::Regular<i16, i32, i64>) $1 = Regular<i16, i32, i64> { } 
[01:32:34] print case3
[01:32:34] (generic_tuple_style_enum::Regular<i16, i32, i64>) $2 = Regular<i16, i32, i64> { } 
[01:32:34] print univariant
[01:32:34] print univariant
[01:32:34] (generic_tuple_style_enum::Univariant<i64>) $3 = Univariant<i64> { } 
[01:32:34] quit
[01:32:34] 
[01:32:34] ------------------------------------------
[01:32:34] stderr:
[01:32:34] ------------------------------------------
[01:32:34] ------------------------------------------
[01:32:34] 
[01:32:34] ------------------------------------------
[01:32:34] 
[01:32:34] thread '[debuginfo-both] debuginfo/generic-tuple-style-enum.rs' panicked at 'explicit panic', tools/compiletest/src/runtest.rs:3284:9
[01:32:34] note: Run with `RUST_BACKTRACE=1` for a backtrace.
[01:32:34] 
[01:32:34] ---- [debuginfo-both] debuginfo/struct-style-enum.rs stdout ----
[01:32:34] NOTE: compiletest thinks it is using LLDB version 902
[01:32:34] NOTE: compiletest thinks it is using LLDB without native rust support
[01:32:34] 
[01:32:34] error: line not found in debugger output: [...]$0 = Case1 { a: 0, b: 31868, c: 31868, d: 31868, e: 31868 }
[01:32:34] status: exit code: 0
[01:32:34] command: "/usr/bin/python" "/Users/travis/build/rust-lang/rust/src/etc/lldb_batchmode.py" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/struct-style-enum/a" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/struct-style-enum/struct-style-enum.debugger.script"
[01:32:34] ------------------------------------------
[01:32:34] ------------------------------------------
[01:32:34] LLDB batch-mode script
[01:32:34] ----------------------
[01:32:34] Debugger commands script is '/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/struct-style-enum/struct-style-enum.debugger.script'.
[01:32:34] Target executable is '/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/struct-style-enum/a'.
[01:32:35] Current working directory is '/Users/travis/build/rust-lang/rust'
[01:32:35] Creating a target for '/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/struct-style-enum/a'
[01:32:35] settings set auto-confirm true
[01:32:35] version
[01:32:35] version
[01:32:35] lldb-902.0.73.1 Swift-4.1 
[01:32:35] command script import /Users/travis/build/rust-lang/rust/./src/etc/lldb_rust_formatters.py
[01:32:35] type summary add --no-value --python-function lldb_rust_formatters.print_val -x ".*" --category Rust
[01:32:35] type category enable Rust
[01:32:35] 
[01:32:35] breakpoint set --file 'struct-style-enum.rs' --line 104
[01:32:35] Breakpoint 1: where = a`struct_style_enum::main::h1a294315b830bf26 + 110 at struct-style-enum.rs:104, address = 0x0000000100000c6e 
[01:32:35] run
[01:32:35] Hit breakpoint 1.1: where = a`struct_style_enum::main::h1a294315b830bf26 + 110 at struct-style-enum.rs:104, address = 0x0000000100000c6e, resolved, hit count = 1 
[01:32:35] Process 69881 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 frame #0: 0x0000000100000c6e a`struct_style_enum::main::h1a294315b830bf26 at struct-style-enum.rs:104 101 102 let univariant = TheOnlyCase { a: -1 }; 103 -> 104  zzz(); // #break 105 } 106 107 fn zzz() {()} Target 0: (a) stopped. Process 69881 launched: '/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/struct-style-enum/a' (x86_64) 
[01:32:35] print case1
[01:32:35] (struct_style_enum::Regular) $0 = Regular { } 
[01:32:35] print case2
[01:32:35] (struct_style_enum::Regular) $1 = Regular { } 
[01:32:35] print case3
[01:32:35] (struct_style_enum::Regular) $2 = Regular { } 
[01:32:35] print univariant
[01:32:35] (struct_style_enum::Univariant) $3 = Univariant { } 
[01:32:35] quit
[01:32:35] 
[01:32:35] ------------------------------------------
[01:32:35] stderr:
[01:32:35] ------------------------------------------
[01:32:35] ------------------------------------------
[01:32:35] 
[01:32:35] ------------------------------------------
[01:32:35] 
[01:32:35] thread '[debuginfo-both] debuginfo/struct-style-enum.rs' panicked at 'explicit panic', tools/compiletest/src/runtest.rs:3284:9
[01:32:35] 
[01:32:35] ---- [debuginfo-both] debuginfo/tuple-style-enum.rs stdout ----
[01:32:35] NOTE: compiletest thinks it is using LLDB version 902
[01:32:35] NOTE: compiletest thinks it is using LLDB without native rust support
[01:32:35] 
[01:32:35] error: line not found in debugger output: [...]$0 = Case1(0, 31868, 31868, 31868, 31868)
[01:32:35] status: exit code: 0
[01:32:35] command: "/usr/bin/python" "/Users/travis/build/rust-lang/rust/src/etc/lldb_batchmode.py" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/tuple-style-enum/a" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/tuple-style-enum/tuple-style-enum.debugger.script"
[01:32:35] ------------------------------------------
[01:32:35] ------------------------------------------
[01:32:35] LLDB batch-mode script
[01:32:35] ----------------------
[01:32:35] Debugger commands script is '/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/tuple-style-enum/tuple-style-enum.debugger.script'.
[01:32:35] Target executable is '/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/tuple-style-enum/a'.
[01:32:35] Current working directory is '/Users/travis/build/rust-lang/rust'
[01:32:35] Creating a target for '/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/tuple-style-enum/a'
[01:32:35] settings set auto-confirm true
[01:32:35] version
[01:32:35] version
[01:32:35] lldb-902.0.73.1 Swift-4.1 
[01:32:35] command script import /Users/travis/build/rust-lang/rust/./src/etc/lldb_rust_formatters.py
[01:32:35] type summary add --no-value --python-function lldb_rust_formatters.print_val -x ".*" --category Rust
[01:32:35] type category enable Rust
[01:32:35] 
[01:32:35] breakpoint set --file 'tuple-style-enum.rs' --line 104
[01:32:35] Breakpoint 1: where = a`tuple_style_enum::main::h9286d5f12067c70e + 110 at tuple-style-enum.rs:104, address = 0x0000000100000cde 
[01:32:35] run
[01:32:35] Hit breakpoint 1.1: where = a`tuple_style_enum::main::h9286d5f12067c70e + 110 at tuple-style-enum.rs:104, address = 0x0000000100000cde, resolved, hit count = 1 
[01:32:35] Process 69930 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 frame #0: 0x0000000100000cde a`tuple_style_enum::main::h9286d5f12067c70e at tuple-style-enum.rs:104 101 102 let univariant = TheOnlyCase(-1); 103 -> 104  zzz(); // #break 105 } 106 107 fn zzz() {()} Target 0: (a) stopped. Process 69930 launched: '/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/tuple-style-enum/a' (x86_64) 
[01:32:35] print case1
[01:32:35] (tuple_style_enum::Regular) $0 = Regular { } 
[01:32:35] print case2
[01:32:35] (tuple_style_enum::Regular) $1 = Regular { } 
[01:32:35] print case3
[01:32:35] (tuple_style_enum::Regular) $2 = Regular { } 
[01:32:35] print univariant
[01:32:35] (tuple_style_enum::Univariant) $3 = Univariant { } 
[01:32:35] quit
[01:32:35] 
[01:32:35] ------------------------------------------
[01:32:35] stderr:
[01:32:35] ------------------------------------------
[01:32:35] ------------------------------------------
[01:32:35] 
[01:32:35] ------------------------------------------
[01:32:35] 
[01:32:35] thread '[debuginfo-both] debuginfo/tuple-style-enum.rs' panicked at 'explicit panic', tools/compiletest/src/runtest.rs:3284:9
[01:32:35] 
[01:32:35] ---- [debuginfo-both] debuginfo/unique-enum.rs stdout ----
[01:32:35] NOTE: compiletest thinks it is using LLDB version 902
[01:32:35] NOTE: compiletest thinks it is using LLDB without native rust support
[01:32:35] 
[01:32:35] error: line not found in debugger output: [...]$0 = TheA { x: 0, y: 8970181431921507452 }
[01:32:35] status: exit code: 0
[01:32:35] command: "/usr/bin/python" "/Users/travis/build/rust-lang/rust/src/etc/lldb_batchmode.py" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/unique-enum/a" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/unique-enum/unique-enum.debugger.script"
[01:32:35] ------------------------------------------
[01:32:35] ------------------------------------------
[01:32:35] LLDB batch-mode script
[01:32:35] ----------------------
[01:32:35] Debugger commands script is '/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/unique-enum/unique-enum.debugger.script'.
[01:32:35] Target executable is '/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/unique-enum/a'.
[01:32:35] Current working directory is '/Users/travis/build/rust-lang/rust'
[01:32:35] Creating a target for '/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/unique-enum/a'
[01:32:35] settings set auto-confirm true
[01:32:35] version
[01:32:35] version
[01:32:35] lldb-902.0.73.1 Swift-4.1 
[01:32:35] command script import /Users/travis/build/rust-lang/rust/./src/etc/lldb_rust_formatters.py
[01:32:35] type summary add --no-value --python-function lldb_rust_formatters.print_val -x ".*" --category Rust
[01:32:35] type category enable Rust
[01:32:35] 
[01:32:35] breakpoint set --file 'unique-enum.rs' --line 88
[01:32:35] Breakpoint 1: where = a`unique_enum::main::h73fe7ab467013df3 + 138 at unique-enum.rs:88, address = 0x000000010000142a 
[01:32:35] run
[01:32:35] Hit breakpoint 1.1: where = a`unique_enum::main::h73fe7ab467013df3 + 138 at unique-enum.rs:88, address = 0x000000010000142a, resolved, hit count = 1 
[01:32:35] Process 69948 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 frame #0: 0x000000010000142a a`unique_enum::main::h73fe7ab467013df3 at unique-enum.rs:88 85 86 let univariant: Box<_> = box Univariant::TheOnlyCase(123234); 87 -> 88  zzz(); // #break 89 } 90 91 fn zzz() {()} Target 0: (a) stopped. Process 69948 launched: '/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo/unique-enum/a' (x86_64) 
[01:32:35] print *the_a
[01:32:35] (unique_enum::ABC) $0 = ABC { } 
[01:32:35] print *the_b
[01:32:35] (unique_enum::ABC) $1 = ABC { } 
[01:32:35] print *univariant
[01:32:35] (unique_enum::Univariant) $2 = Univariant { } 
[01:32:35] quit
[01:32:35] 
[01:32:35] ------------------------------------------
[01:32:35] stderr:
[01:32:35] ------------------------------------------
---
[01:32:35] test result: FAILED. 86 passed; 4 failed; 28 ignored; 0 measured; 0 filtered out
[01:32:35] 
[01:32:35] 
[01:32:35] 
[01:32:35] command did not execute successfully: "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage0-tools-bin/compiletest" "--compile-lib-path" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage2/lib" "--run-lib-path" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage2/lib/rustlib/x86_64-apple-darwin/lib" "--rustc-path" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage2/bin/rustc" "--src-base" "/Users/travis/build/rust-lang/rust/src/test/debuginfo" "--build-base" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/debuginfo" "--stage-id" "stage2-x86_64-apple-darwin" "--mode" "debuginfo-both" "--target" "x86_64-apple-darwin" "--host" "x86_64-apple-darwin" "--llvm-filecheck" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/llvm/build/bin/FileCheck" "--nodejs" "/Users/travis/.nvm/versions/node/v6.12.3/bin/node" "--host-rustcflags" "-Crpath -O -Zunstable-options " "--target-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/native/rust-test-helpers" "--docck-python" "/usr/local/opt/python/bin/python2.7" "--lldb-python" "/usr/bin/python" "--lldb-version" "lldb-902.0.73.1\n  Swift-4.1\n" "--lldb-python-dir" "/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python" "--llvm-version" "8.0.0svn\n" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
[01:32:35] 
[01:32:35] 
[01:32:35] failed to run: /Users/travis/build/rust-lang/rust/build/bootstrap/debug/bootstrap test
[01:32:35] Build completed unsuccessfully in 0:34:13
---
travis_fold:start:after_failure.2
travis_time:start:002dfc32
$ ls -lat $HOME/Library/Logs/DiagnosticReports/
total 1312
drwx------  22 travis  staff    748 Oct 26 21:38 .
-rw-------@  1 travis  staff  62246 Oct 26 21:38 a_2018-10-26-213802-1_Traviss-Mac-1044.crash
-rw-------@  1 travis  staff  37481 Oct 26 21:38 a_2018-10-26-213802_Traviss-Mac-1044.crash
-rw-------@  1 travis  staff  37224 Oct 26 21:37 a_2018-10-26-213752-1_Traviss-Mac-1044.crash
-rw-------@  1 travis  staff  60386 Oct 26 21:37 a_2018-10-26-213752_Traviss-Mac-1044.crash
-rw-------@  1 travis  staff  10142 Oct 26 21:37 a_2018-10-26-213746_Traviss-Mac-1044.crash
-rw-------@  1 travis  staff   9873 Oct 26 21:37 a_2018-10-26-213742_Traviss-Mac-1044.crash
-rw-------@  1 travis  staff   9876 Oct 26 21:37 a_2018-10-26-213733-1_Traviss-Mac-1044.crash
-rw-------@  1 travis  staff   9845 Oct 26 21:37 a_2018-10-26-213733_Traviss-Mac-1044.crash
-rw-------@  1 travis  staff  10034 Oct 26 21:37 a_2018-10-26-213714_Traviss-Mac-1044.crash
-rw-------@  1 travis  staff  63125 Oct 26 21:36 a_2018-10-26-213655_Traviss-Mac-1044.crash
-rw-------@  1 travis  staff  63914 Oct 26 21:36 a_2018-10-26-213652-1_Traviss-Mac-1044.crash
-rw-------@  1 travis  staff  65090 Oct 26 21:36 a_2018-10-26-213652-2_Traviss-Mac-1044.crash
-rw-------@  1 travis  staff  64247 Oct 26 21:36 a_2018-10-26-213652_Traviss-Mac-1044.crash
-rw-------@  1 travis  staff  11731 Oct 26 21:34 a_2018-10-26-213450_Traviss-Mac-1044.crash
-rw-------@  1 travis  staff   9897 Oct 26 21:34 a_2018-10-26-213404_Traviss-Mac-1044.crash
-rw-------@  1 travis  staff  10304 Oct 26 21:32 a_2018-10-26-213252_Traviss-Mac-1044.crash
-rw-------@  1 travis  staff  10486 Oct 26 21:31 a_2018-10-26-213158-1_Traviss-Mac-1044.crash
-rw-------@  1 travis  staff  10486 Oct 26 21:31 a_2018-10-26-213158_Traviss-Mac-1044.crash
-rw-------@  1 travis  staff  10213 Oct 26 21:31 a_2018-10-26-213126_Traviss-Mac-1044.crash
-rw-------@  1 travis  staff  62246 Oct 26 21:29 a_2018-10-26-212944_Traviss-Mac-1044.crash
drwx------+ 15 travis  staff    510 Jan 25  2018 ..
travis_fold:end:after_failure.2
travis_fold:start:after_failure.3
travis_time:start:019c50c0
$ find $HOME/Library/Logs/DiagnosticReports -type f -name '*.crash' -not -name '*.stage2-*.crash' -not -name 'com.apple.CoreSimulator.CoreSimulatorService-*.crash' -exec printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" {} \; -exec head -750 {} \; -exec echo travis_fold":"end:crashlog \; || true
$ find $HOME/Library/Logs/DiagnosticReports -type f -name '*.crash' -not -name '*.stage2-*.crash' -not -name 'com.apple.CoreSimulator.CoreSimulatorService-*.crash' -exec printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" {} \; -exec head -750 {} \; -exec echo travis_fold":"end:crashlog \; || true
travis_fold:start:crashlog
/Users/travis/Library/Logs/DiagnosticReports/a_2018-10-26-212944_Traviss-Mac-1044.crash
Process:               a [52382]
Path:                  /Users/USER/*/a
Identifier:            a
Version:               0
Code Type:             X86-64 (Native)
Parent Process:        ??? [52380]
Responsible:           a [52382]
User ID:               501
Date/Time:             2018-10-26 21:29:40.267 +0000
OS Version:            Mac OS X 10.13.3 (17D47)
Anonymous UUID:        A91A3A70-3ADA-D7A9-5891-C1A67A5778E7
Anonymous UUID:        A91A3A70-3ADA-D7A9-5891-C1A67A5778E7
Time Awake Since Boot: 4800 seconds
System Integrity Protection: enabled
Crashed Thread:        0  Dispatch queue: com.apple.main-thread
Exception Type:        EXC_BAD_ACCESS (SIGABRT)
Exception Codes:       KERN_PROTECTION_FAILURE at 0x00007ffee9f11e80
Exception Note:        EXC_CORPSE_NOTIFY
VM Regions Near 0x7ffee9f11e80:
    Stack Guard            00007ffee9f10000-00007ffee9f11000 [    4K] ---/rwx SM=NUL  
--> VM_ALLOCATE            00007ffee9f11000-00007ffee9f12000 [    4K] ---/rwx SM=NUL  
    Stack                  00007ffee9f12000-00007ffeedf10000 [ 64.0M] rw-/rwx SM=COW  
abort() called
abort() called
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib         0x00007fff6b279e3e __pthread_kill + 10
1   libsystem_pthread.dylib        0x00007fff6b3b8150 pthread_kill + 333
2   libsystem_c.dylib              0x00007fff6b1d6312 abort + 127
3   a                              0x0000000101cf5269 std::sys::unix::abort_internal::h920319b3609835ff + 9
4   a                              0x0000000101cf525b std::sys_common::util::abort::h53eadd5a3111ea4a + 91
5   a                              0x0000000101d06f69 std::sys::unix::stack_overflow::imp::signal_handler::hbb993e795b77e561 + 665
6   libsystem_platform.dylib       0x00007fff6b3abf5a _sigtramp + 26
7   ???                            000000000000000000 0 + 0
8   a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
9   a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
10  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
11  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
12  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
13  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
14  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
15  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
16  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
17  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
18  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
19  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
20  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
21  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
22  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
23  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
24  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
25  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
26  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
27  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
28  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
29  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
30  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
31  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
32  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
33  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
34  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
35  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
36  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
37  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
38  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
39  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
40  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
41  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
42  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
43  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
44  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
45  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
46  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
47  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
48  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
49  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
50  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
51  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
52  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
53  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
54  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
55  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
56  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
57  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
58  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
59  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
60  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
61  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
62  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
63  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
64  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
65  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
66  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
67  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
68  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
69  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
70  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
71  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
72  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
73  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
74  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
75  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
76  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
77  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
78  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
79  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
80  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
81  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
82  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
83  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
84  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
85  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
86  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
87  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
88  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
89  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
90  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
91  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
92  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
93  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
94  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
95  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
96  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
97  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
98  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
99  a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
100 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
101 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
102 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
103 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
104 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
105 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
106 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
107 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
108 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
109 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
110 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
111 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
112 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
113 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
114 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
115 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
116 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
117 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
118 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
119 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
120 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
121 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
122 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
123 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
124 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
125 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
126 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
127 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
128 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
129 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
130 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
131 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
132 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
133 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
134 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
135 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
136 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
137 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
138 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
139 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
140 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
141 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
142 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
143 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
144 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
145 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
146 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
147 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
148 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
149 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
150 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
151 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
152 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
153 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
154 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
155 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
156 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
157 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
158 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
159 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
160 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
161 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
162 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
163 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
164 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
165 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
166 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
167 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
168 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
169 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
170 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
171 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
172 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
173 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
174 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
175 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
176 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
177 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
178 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
179 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
180 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
181 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
182 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
183 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
184 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
185 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
186 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
187 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
188 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
189 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
190 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
191 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
192 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
193 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
194 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
195 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
196 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
197 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
198 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
199 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
200 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
201 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
202 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
203 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
204 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
205 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
206 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
207 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
208 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
209 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
210 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
211 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
212 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
213 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
214 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
215 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
216 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
217 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
218 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
219 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
220 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
221 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
222 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
223 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
224 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
225 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
226 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
227 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
228 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
229 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
230 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
231 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
232 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
233 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
234 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
235 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
236 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
237 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
238 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
239 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
240 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
241 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
242 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
243 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
244 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
245 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
246 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
247 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
248 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
249 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
250 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
251 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
252 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
253 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
254 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
255 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
256 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
257 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
258 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
259 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
260 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
261 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
262 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
263 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
264 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
265 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
266 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
267 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
268 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
269 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
270 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
271 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
272 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
273 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
274 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
275 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
276 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
277 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
278 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
279 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
280 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
281 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
282 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
283 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
284 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
285 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
286 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
287 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
288 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
289 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
290 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
291 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
292 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
293 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
294 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
295 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
296 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
297 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
298 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
299 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
300 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
301 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
302 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
303 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
304 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
305 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
306 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
307 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
308 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
309 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
310 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
311 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
312 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
313 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
314 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
315 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
316 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
317 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
318 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
319 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
320 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
321 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
322 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
323 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
324 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
325 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
326 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
327 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
328 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
329 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
330 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
331 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
332 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
333 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
334 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
335 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
336 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
337 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
338 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
339 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
340 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
341 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
342 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
343 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
344 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
345 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
346 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
347 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
348 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
349 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
350 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
351 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
352 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
353 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
354 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
355 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
356 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
357 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
358 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
359 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
360 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
361 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
362 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
363 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
364 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
365 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
366 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
367 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
368 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
369 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
370 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
371 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
372 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
373 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
374 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
375 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
376 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
377 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
378 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
379 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
380 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
381 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
382 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
383 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
384 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
385 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
386 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
387 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
388 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
389 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
390 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
391 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
392 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
393 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
394 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
395 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
396 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
397 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
398 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
399 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
400 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
401 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
402 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
403 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
404 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
405 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
406 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
407 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
408 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
409 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
410 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
411 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
412 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
413 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
414 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
415 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
416 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
417 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
418 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
419 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
420 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
421 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
422 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
423 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
424 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
425 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
426 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
427 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
428 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
429 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
430 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
431 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
432 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
433 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
434 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
435 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
436 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
437 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
438 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
439 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
440 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34
441 a                              0x0000000101cf2702 stack_probes_lto::recurse::h6895313952b89569 + 34

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@tromey
Copy link
Contributor Author

tromey commented Oct 26, 2018

Some difference between the apple lldb and the (non-rust-enabled) linux lldb I suppose. Will do another macOS build next week.

@tromey
Copy link
Contributor Author

tromey commented Oct 30, 2018

Forgot to make those tests rust-lldb-only.

The DWARF generated for Rust enums was always somewhat unusual.
Rather than using DWARF constructs directly, it would emit magic field
names like "RUST$ENCODED$ENUM$0$Name" and "RUST$ENUM$DISR".  Since
PR rust-lang#45225, though, even this has not worked -- the ad hoc scheme was
not updated to handle the wider variety of niche-filling layout
optimizations now available.

This patch changes the generated DWARF to use the standard tags meant
for this purpose; namely, DW_TAG_variant and DW_TAG_variant_part.

The patch to implement this went in to LLVM 7.  In order to work with
older versions of LLVM, and because LLVM doesn't do anything here for
PDB, the existing code is kept as a fallback mode.

Support for this DWARF is in the Rust lldb and in gdb 8.2.

Closes rust-lang#32920
Closes rust-lang#32924
Closes rust-lang#52762
Closes rust-lang#53153
This fixes the issues pointed out in review.
Update the new enum-debug to ensure that field "D" does not have a
discrimnant.
Rename the previous enum debug info test, and add more tests to cover
c-like enums and tagged (ordinary) enums.
@eddyb pointed out in review that the niche value computation had a
possible integer overflow problem, fixed here as he suggested.
Bug rust-lang#52452 notes some debuginfo test regressions when moving to gdb
8.1.  This series will also cause versions of gdb before 8.2 to fail
when a recent LLVM is used -- DW_TAG_variant_part support was not
added until 8.2.

This patch updates one of the builders to a later version of Ubuntu,
which comes with gdb 8.2.  It updates the relevant tests to require
both a new-enough LLVM and a new-enough gdb; the subsequent patch
arranges to continue testing the fallback mode.

The "gdbg" results are removed from these tests because the tests now
require a rust-enabled gdb.

If you read closely, you'll see that some of the lldb results in this
patch still look a bit strange.  This will be addressed in a
subsequent patch; I believe the fix is to disable the Python
pretty-printers when lldb is rust-enabled.
The enum debuginfo patch includes a legacy mode that is used when
building against LLVM 5 and LLVM 6.  The main enum debuginfo tests
have been updated to rely on the new approach and a new-enough gdb.
This patch makes a copy of these tests so that the fallback mode will
continue to be tested.

Note that nil-enum.rs is not copied; it seemed not to provide enough
value to bother.

A new header directive is added, "ignore-llvm-version".  I will send a
patch to update the rustc documentation once this lands.
Update src/tools/lldb to pick up a needed bug fix in the
DW_TAG_variant_part handling.
@tromey
Copy link
Contributor Author

tromey commented Oct 30, 2018

@bors r+

@bors
Copy link
Collaborator

bors commented Oct 30, 2018

📌 Commit 98b2688 has been approved by tromey

@bors
Copy link
Collaborator

bors commented Oct 30, 2018

⌛ Testing commit 98b2688 with merge 0db7abe...

@bors
Copy link
Collaborator

bors commented Oct 31, 2018

☀️ Test successful - status-appveyor, status-travis
Approved by: tromey
Pushing 0db7abe to master...

@michaelwoerister
Copy link
Member

🎉 🎉 🎉 !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants