diff options
| author | Oleksandr T. <oleksandr.tarasiuk@outlook.com> | 2024-10-24 11:34:58 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-24 10:34:58 +0200 |
| commit | 61a456bd5ae88eeccc39b28a30be4eb03289446d (patch) | |
| tree | 4d033f64302982f81d7aa695e237df19f9725cf7 /lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp | |
| parent | 17bfd21391d080afbf2697a0a1a631a1be76a2e4 (diff) | |
[Clang] prevent assertion failure in value-dependent initializer expressions (#112612)
Fixes #112140
---
```
CXXConstructExpr 0x14209e580 'const S':'const struct S' contains-errors 'void (const int &)' list
`-CXXDefaultArgExpr 0x14209e500 'const int' contains-errors
`-RecoveryExpr 0x14209daf0 'const int' contains-errors
```
This change resolves an issue with evaluating `ArrayFiller` initializers
in _dependent_ contexts, especially when they involve a `RecoveryExpr`.
In certain cases, `ArrayFiller` initializers containing a `RecoveryExpr`
from earlier errors are incorrectly passed to `EvaluateInPlace`, causing
evaluation failures when they are value-dependent.
When this is the case, the initializer is processed through
`EvaluateDependentExpr`, which prevents unnecessary evaluation attempts
and ensures proper handling of value-dependent initializers in
`ArrayFillers`.
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp')
0 files changed, 0 insertions, 0 deletions
