aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2025-06-24 14:28:40 -0500
committerGitHub <noreply@github.com>2025-06-24 12:28:40 -0700
commitb171ebbfffcd4b8d923734dd0fc077b02a6fe3f7 (patch)
treecfe3b2674493bd2919ac50054981d8f882caf0c1 /clang/lib/CodeGen/CodeGenModule.cpp
parent2b5141189f7b2c4289dace9a18108594ecf244b4 (diff)
downloadllvm-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