diff options
author | Jonas Devlieghere <jonas@devlieghere.com> | 2025-06-24 14:28:40 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-06-24 12:28:40 -0700 |
commit | b171ebbfffcd4b8d923734dd0fc077b02a6fe3f7 (patch) | |
tree | cfe3b2674493bd2919ac50054981d8f882caf0c1 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 2b5141189f7b2c4289dace9a18108594ecf244b4 (diff) | |
download | llvm-b171ebbfffcd4b8d923734dd0fc077b02a6fe3f7.zip llvm-b171ebbfffcd4b8d923734dd0fc077b02a6fe3f7.tar.gz llvm-b171ebbfffcd4b8d923734dd0fc077b02a6fe3f7.tar.bz2 |
[lldb] Defend against infinite recursion in GetClassDescriptor (#145396)
We defend against a direct cycle where a base class ValueObject is its
own parent, but not against a longer base cycle. This cycle requires
that some value's Type includes a base class, and that base class is in
a class hierarchy that cycles back to the original base class.
I wrote a test case that creates a cycle in the class hierarchy by
dynamically overwriting the superclass of an object, but I can't
reproduce the crash. I can't think of any other way to make a real
object that behaves that way. Maybe is a type system problem in making
up the type for whatever type we're trying to ingest here.
While unsatisfying, without a reproducer this is the best we can do for
now.
rdar://140293233
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions