)]}' { "commit": "70ee703c479081ac2ea67eb67041551216e66783", "tree": "0514a9c1ec9c59b44d031d27199b213e4287153a", "parents": [ "c5a735fa9df7eca4666c8da5e51ed9c5ab7cc81a" ], "author": { "name": "Iain Sandoe", "email": "iain@sandoe.co.uk", "time": "Sat Jul 10 10:50:23 2021 +0100" }, "committer": { "name": "Iain Sandoe", "email": "iain@sandoe.co.uk", "time": "Tue Sep 14 16:56:10 2021 +0100" }, "message": "coroutines: Make proxy vars for the function arg copies.\n\nThis adds top level proxy variables for the coroutine frame\ncopies of the original function args. These are then available\nin the debugger to refer to the frame copies. We rewrite the\nfunction body to use the copies, since the original parms will\nno longer be in scope when the coroutine is running.\n\nSigned-off-by: Iain Sandoe \u003ciain@sandoe.co.uk\u003e\n\ngcc/cp/ChangeLog:\n\n\t* coroutines.cc (struct param_info): Add copy_var.\n\t(build_actor_fn): Use simplified param references.\n\t(register_param_uses): Likewise.\n\t(rewrite_param_uses): Likewise.\n\t(analyze_fn_parms): New function.\n\t(coro_rewrite_function_body): Add proxies for the fn\n\tparameters to the outer bind scope of the rewritten code.\n\t(morph_fn_to_coro): Use simplified version of param ref.\n", "tree_diff": [ { "type": "modify", "old_id": "cd774b78ae0fae408d22d8dcbd7d3002a3d7675e", "old_mode": 33188, "old_path": "gcc/cp/coroutines.cc", "new_id": "d2cc2e73c8999fa6c7093ea43eeac0685bcd832a", "new_mode": 33188, "new_path": "gcc/cp/coroutines.cc" } ] }