1
Fork 0
rust/compiler/rustc_codegen_llvm/src/debuginfo
Dylan DPC 2553053828
Rollup merge of #84752 - lrh2000:generator-debuginfo, r=tmandry
Fix debuginfo for generators

First, all fields except the discriminant (including `outer_fields`) should be put into structures inside the variant part, which gives an equivalent layout but offers us much better integration with debuggers.

Second, artificial flags in generator variants should be removed.
 - Literally, variants are not artificial. We have `yield` statements, upvars and inner variables in the source code.
 - Functionally, we don't want debuggers to suppress the variants. It contains the state of the generator, which is useful when debugging. So they shouldn't be marked artificial.
 - Debuggers may use artificial flags to find the active variant. In this case, marking variants artificial will make debuggers not work properly.

Fixes #62572.
Fixes #79009.

And refer https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/Debuginfo.20for.20generators.
2021-05-02 17:00:23 +02:00
..
create_scope_map.rs nhwn: use plain u32 in DebugLoc 2021-02-20 11:46:58 -06:00
doc.md Cleanup LLVM debuginfo module docs 2021-03-20 14:38:49 -07:00
gdb.rs Collapse all uses of target.options.foo into target.foo 2020-11-08 17:29:13 +03:00
metadata.rs Remove artificial flag from generator variants 2021-04-30 22:36:08 +08:00
mod.rs Implement RFC 1260 with feature_name imported_main. 2021-04-29 08:35:08 +08:00
namespace.rs Address review comment 2020-09-25 22:48:44 +01:00
utils.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00