c++: Fix up mangling of static lambdas [PR108525]
authorJakub Jelinek <jakub@redhat.com>
Wed, 25 Jan 2023 14:13:30 +0000 (15:13 +0100)
committerJakub Jelinek <jakub@redhat.com>
Wed, 25 Jan 2023 14:13:30 +0000 (15:13 +0100)
commit9d4c00cdaccc3decd07740e817387ce844ef3ac9
tree35423fbb143d5a536507e0f5fa77d100f637e4da
parent267f01a493ab8a0bec9325ce3386b946c46f2e98
c++: Fix up mangling of static lambdas [PR108525]

Before the P1169R4 changes, operator () of a lambda was
always a method, so it was fine to pass method_p = 1 unconditionally,
but it isn't always the case, so this patch adds a check for whether
it is a method or nor.

2023-01-25  Jakub Jelinek  <jakub@redhat.com>

PR c++/108525
* mangle.cc (write_closure_type_name): Don't assume all
lambda operator() fns are methods.

* g++.dg/cpp23/static-operator-call5.C: New test.
gcc/cp/mangle.cc
gcc/testsuite/g++.dg/cpp23/static-operator-call5.C