diff options
author | Michael Buch <michaelbuch12@gmail.com> | 2024-04-11 20:30:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-11 20:30:48 +0200 |
commit | 38f8fcea3455ef1d77faf9746579f52b4e18dacc (patch) | |
tree | 68f88805f6776313c6683c1f01f6368d08996ec1 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | fc52ee336b394d84110184d625cda1d4f84d8098 (diff) | |
download | llvm-38f8fcea3455ef1d77faf9746579f52b4e18dacc.zip llvm-38f8fcea3455ef1d77faf9746579f52b4e18dacc.tar.gz llvm-38f8fcea3455ef1d77faf9746579f52b4e18dacc.tar.bz2 |
[lldb][ClangExpressionParser] Don't by default enable Objecitve-C support when evaluating C++ expressions (#87767)
This patch attempts to decouple C++ expression evaluation from
Objective-C support. We've previously enabled it by default (if a
runtime existed), but that meant we're opting into extra work we only
need to do for Objective-C, which complicates/slows down C++ expression
evaluation. Of course there's a valid use-case for this, which is
calling Objective-C APIs when stopped in C++ frames (which Objective-C++
developers might want to do). In those cases we should really prompt the
user to add the `expr --language objc++` flag. To accomodate a likely
frequent use-case where a user breaks in a system C++ library (without
debug-symbols) but their application is actually an Objective-C app, we
allow Objective-C support in C++ expressions if the current frame
doesn't have debug-info.
This fixes https://github.com/llvm/llvm-project/issues/75443 and allows
us to add more `LangOpts.ObjC` guards around the expression evaluator in
the future (e.g., we could avoid looking into the Objective-C runtime
during C++ expression evaluation, which we currently do
unconditionally).
Depends on https://github.com/llvm/llvm-project/pull/87657
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions