The c++ file to reproduce it:
```c++
#include <stdio.h>
#include <functional>
struct PP {
const char * name;
};
static void print(const char *name, std::function<void(const char *)> f)
{
f(name);
}
int main(int argc, char *argv[])
{
PP A = { "Jim" };
PP *a = &A;
print(A.name, [](const char *name) {
printf("%s\n", name); // Syntactic ((inlambda) ...
});
print(a->name, [=](const char *name) {
printf("%s\n", name); // Syntactic((arglist-cont-nonempty ...
});
return 0;
}
```
If I put cursor in lambda body of first print call, and run 'c-show-syntactic-information', it shows 'Syntactic analysis: ((inlambda) (defun-block-intro 258))', which is correct and I get good indentation.
But in second print call, I get 'Syntactic analysis:
((arglist-cont-nonempty 337 342) (statement-block-intro 337))' and the
indentation is bad.
My emacs version is 27.1. I can reproduce the problem in both Linux and Windows with 'emacs -Q'.