vbvictor wrote:

Also, could you share how we traversed before the fix and now? (If you debugged 
it)
Given the AST for `[] { throw 0; };` (stipped useless part):
```
    `-LambdaExpr <line:2:5, col:19> '(lambda at line:2:5)'
      |-CXXRecordDecl <col:5> col:5 implicit class definition
      | |-CXXMethodDecl <col:6, col:19> col:5 constexpr operator() 'auto () 
const -> void' inline
      | | |-CompoundStmt <col:8, col:19>
      | | | `-CXXThrowExpr <col:10, col:16> 'void'
      | | |   `-IntegerLiteral <col:16> 'int' 0
      | | `-InferredNoReturnAttr Implicit
      | |-CXXConversionDecl <col:5, col:19> col:5 implicit constexpr operator 
void (*)() 'auto (*() const noexcept)() -> void' inline
      | |-CXXMethodDecl <col:5, col:19> col:5 implicit __invoke 'auto () -> 
void' static inline
      | `-CXXDestructorDecl <col:5> col:5 implicit referenced ~(lambda at 
line:2:5) 'void () noexcept' inline default trivial
      `-CompoundStmt <col:8, col:19>
        `-CXXThrowExpr <col:10, col:16> 'void'
          `-IntegerLiteral <col:16> 'int' 0
```
I thought we needed some modelling for calling the lambda in order to properly 
handle `[] {}` but in your PR it's different.
Honestly from brief look I don't understand how this fix the problem

https://github.com/llvm/llvm-project/pull/160592
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to