diff options
author | Adrian Vogelsgesang <avogelsgesang@salesforce.com> | 2023-01-31 05:16:04 -0800 |
---|---|---|
committer | Adrian Vogelsgesang <avogelsgesang@salesforce.com> | 2023-01-31 07:40:31 -0800 |
commit | 8aa313755118bf43c6042fb316b6c243b2c59be2 (patch) | |
tree | 69c73d0d7f3c901afdb7a65177a95c8a5a73c5df /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | d538bc7f0303bf9cd87cb565266b9f11b325e3e1 (diff) | |
download | llvm-8aa313755118bf43c6042fb316b6c243b2c59be2.zip llvm-8aa313755118bf43c6042fb316b6c243b2c59be2.tar.gz llvm-8aa313755118bf43c6042fb316b6c243b2c59be2.tar.bz2 |
[LLDB] Do not dereference promise pointer in `coroutine_handle` pretty printer
So far, the pretty printer for `std::coroutine_handle` internally
dereferenced the contained frame pointer displayed the `promise`
as a sub-value. As noticed in https://reviews.llvm.org/D132624
by @labath, this can lead to an endless loop in lldb during printing
if the coroutine frame pointers form a cycle.
This commit breaks the cycle by exposing the `promise` as a pointer
type instead of a value type. The depth to which the `frame variable`
and the `expression` commands dereference those pointers can be
controlled using the `--ptr-depth` argument.
Differential Revision: https://reviews.llvm.org/D132815
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions