aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CoverageMappingGen.cpp
diff options
context:
space:
mode:
authorOleksandr T. <oleksandr.tarasiuk@outlook.com>2024-10-24 11:34:58 +0300
committerGitHub <noreply@github.com>2024-10-24 10:34:58 +0200
commit61a456bd5ae88eeccc39b28a30be4eb03289446d (patch)
tree4d033f64302982f81d7aa695e237df19f9725cf7 /clang/lib/CodeGen/CoverageMappingGen.cpp
parent17bfd21391d080afbf2697a0a1a631a1be76a2e4 (diff)
downloadllvm-61a456bd5ae88eeccc39b28a30be4eb03289446d.zip
llvm-61a456bd5ae88eeccc39b28a30be4eb03289446d.tar.gz
llvm-61a456bd5ae88eeccc39b28a30be4eb03289446d.tar.bz2
[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 'clang/lib/CodeGen/CoverageMappingGen.cpp')
0 files changed, 0 insertions, 0 deletions