[PATCH] D146535: [Clang] Fix evaluation of parameters of lambda call operator attributes
Corentin Jabot via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Mar 21 10:17:33 PDT 2023
cor3ntin added a comment.
In D146535#4210198 <https://reviews.llvm.org/D146535#4210198>, @eandrews wrote:
>> Attributes of lambda call operator were evaluated in the context of the closure object type rather than its operator,
>
> Just for my understanding, what did this affect with regards to the if guard for assert? CurContext or something else? I suspected it had something to do with contexts being incorrect but I wasn't familiar enough with the code to pinpoint where/what exactly.
Exactly `CurContext`. For the purpose of mangling lambda the context needs to be the parent of the lambda class, so `!CurLSI->Lambda->Encloses(CurContext)` - which check that we are actually in the lambda - was (incorrectly) true.
Note that you are right about the assert being fishy to begin with but that's a preexisting thing and i can't quite convince myself than removing it entirely wouldn't break something. That we were in the wrong context is something i broke :(
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D146535/new/
https://reviews.llvm.org/D146535
More information about the cfe-commits
mailing list