public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/107741] New: Missed member variable name in mangling of externally visible lambdas used in inline initialization of static members
@ 2022-11-18 1:05 dblaikie at gmail dot com
2022-11-18 1:08 ` [Bug c++/107741] " dblaikie at gmail dot com
2023-03-07 6:32 ` dblaikie at gmail dot com
0 siblings, 2 replies; 3+ messages in thread
From: dblaikie at gmail dot com @ 2022-11-18 1:05 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107741
Bug ID: 107741
Summary: Missed member variable name in mangling of externally
visible lambdas used in inline initialization of
static members
Product: gcc
Version: 13.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: dblaikie at gmail dot com
Target Milestone: ---
https://godbolt.org/z/7514cTh5o
```
struct A {
static constexpr auto x = [] {
return 1;
};
};
template <typename>
struct B {
static constexpr auto x = [] {
return 1;
};
};
template <typename T>
struct C {
static int x;
};
void side_effect();
template <typename T>
int C<T>::x = (side_effect(), [] { return 1; }());
template int C<int>::x;
void f() {
A::x();
B<int>::x();
}
```
GCC produces these manglings:
```
A::{lambda()#1}::operator()() const
_ZNK1AUlvE_clEv
B<int>::{lambda()#3}::operator()() const
_ZNK1BIiEUlvE1_clEv
C<int>::x::{lambda()#1}::operator()() const
_ZNK1CIiE1xMUlvE_clEv
```
I believe in the first two cases, the member variable scope ("::x") is missing.
Oh, and it looks like the lambda numbering is off - B's lambda is 1 within its
scope (either the type or the member) - so I guess that needs to be fixed
too/scoping the numbering to within the member along with the mangling having
that scoping.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/107741] Missed member variable name in mangling of externally visible lambdas used in inline initialization of static members
2022-11-18 1:05 [Bug c++/107741] New: Missed member variable name in mangling of externally visible lambdas used in inline initialization of static members dblaikie at gmail dot com
@ 2022-11-18 1:08 ` dblaikie at gmail dot com
2023-03-07 6:32 ` dblaikie at gmail dot com
1 sibling, 0 replies; 3+ messages in thread
From: dblaikie at gmail dot com @ 2022-11-18 1:08 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107741
--- Comment #1 from David Blaikie <dblaikie at gmail dot com> ---
Oh, some context - discovered while investigating a related clang bug:
https://github.com/llvm/llvm-project/issues/58819 - so don't check clang for an
example of what's right here, it has different bugs, though I've sent a fix for
that for review.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/107741] Missed member variable name in mangling of externally visible lambdas used in inline initialization of static members
2022-11-18 1:05 [Bug c++/107741] New: Missed member variable name in mangling of externally visible lambdas used in inline initialization of static members dblaikie at gmail dot com
2022-11-18 1:08 ` [Bug c++/107741] " dblaikie at gmail dot com
@ 2023-03-07 6:32 ` dblaikie at gmail dot com
1 sibling, 0 replies; 3+ messages in thread
From: dblaikie at gmail dot com @ 2023-03-07 6:32 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107741
--- Comment #2 from David Blaikie <dblaikie at gmail dot com> ---
Ping on this? Would love it if someone could check my work/confirm my
diagnosis, even if it's not a priority to fix the bug immediately.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-03-07 6:32 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-18 1:05 [Bug c++/107741] New: Missed member variable name in mangling of externally visible lambdas used in inline initialization of static members dblaikie at gmail dot com
2022-11-18 1:08 ` [Bug c++/107741] " dblaikie at gmail dot com
2023-03-07 6:32 ` dblaikie at gmail dot com
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).