aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorMichael Buch <michaelbuch12@gmail.com>2025-10-17 23:27:57 +0100
committerGitHub <noreply@github.com>2025-10-17 23:27:57 +0100
commitbf2d84db8e95cf0dbf782f6609b034427ab1c07d (patch)
tree3ef8d24241a725dc851f43eeae9163cb3411076f /clang/lib/Frontend/CompilerInvocation.cpp
parent9522f989b06c6e7eb031758e71cd1c69755e7f32 (diff)
downloadllvm-bf2d84db8e95cf0dbf782f6609b034427ab1c07d.zip
llvm-bf2d84db8e95cf0dbf782f6609b034427ab1c07d.tar.gz
llvm-bf2d84db8e95cf0dbf782f6609b034427ab1c07d.tar.bz2
[lldb][ObjC] Consult Objective-C runtime decl vendor when completing type (#164011)
(Note, this upstreams code that has been deployed on Apple's Swift LLDB for many years at this point). When a `ValueObject` computes its "complete type" (`MaybeCalculateCompleteType`), it gives the language runtimes a chance to override the type known to it. The current implementation of `ObjCLanguageRuntime::GetRuntimeType`, however, didn't consult the `AppleObjCDeclVendor` to look for types. As demonstrated in the attached test, when we don't have debug-info for a base class type (most commonly happens when inheriting from system framework types) we would not be able to deduce ivars of that type. However, the runtime knows about the ivars, so we should be able to retrieve them. There's still a couple of caveats for future follow-up/investigation: 1. `frame var` isn't able to access such backing ivars explicitly (even if they do exist) 2. When compiling with `-gmodules`, LLDB gets confused about what is correct source of information for these decls is. rdar://162069497
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions