aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode
diff options
context:
space:
mode:
authorOleksandr T. <oleksandr.tarasiuk@outlook.com>2025-11-06 22:55:36 +0200
committerGitHub <noreply@github.com>2025-11-06 22:55:36 +0200
commitbb6d2bea6495b044a0773598916eba801f8d38fc (patch)
treed0705565bf3cdf1f0016439cbbf905506c0505c0 /llvm/lib/Bitcode
parent6adf99338832966dcf3477e112b158cd588ac584 (diff)
downloadllvm-bb6d2bea6495b044a0773598916eba801f8d38fc.zip
llvm-bb6d2bea6495b044a0773598916eba801f8d38fc.tar.gz
llvm-bb6d2bea6495b044a0773598916eba801f8d38fc.tar.bz2
[Clang] fix confusing diagnostics for lambdas with init-captures inside braced initializers (#166180)
Fixes #163498 --- This PR addresses the issue of confusing diagnostics for lambdas with init-captures appearing inside braced initializers. Cases such as: ```cpp S s{[a(42), &] {}}; ``` were misparsed as C99 array designators, producing unrelated diagnostics, such as `use of undeclared identifier 'a'`, and `expected ']'` --- https://github.com/llvm/llvm-project/blob/bb9bd5f263226840194b28457ddf9861986db51f/clang/lib/Parse/ParseInit.cpp#L470 https://github.com/llvm/llvm-project/blob/bb9bd5f263226840194b28457ddf9861986db51f/clang/lib/Parse/ParseInit.cpp#L74 https://github.com/llvm/llvm-project/blob/bb9bd5f263226840194b28457ddf9861986db51f/clang/include/clang/Parse/Parser.h#L4652-L4655 https://github.com/llvm/llvm-project/blob/24c22b7de620669aed9da28de323309c44a58244/clang/lib/Parse/ParseExprCXX.cpp#L871-L879 The tentative parser now returns `Incomplete` for partially valid lambda introducers, preserving the `lambda` interpretation and allowing the proper diagnostic to be issued later. --- Clang now correctly recognizes such constructs as malformed lambda introducers and emits the expected diagnostic — for example, “capture-default must be first” — consistent with direct initialization cases such as: ```cpp S s([a(42), &] {}); ```
Diffstat (limited to 'llvm/lib/Bitcode')
0 files changed, 0 insertions, 0 deletions