gcc bug with lambda capture of this in initialization list with virtual inheritance?
c++, gcc, lambda
Solution
This has been filed as a bug with gcc, and confirmed.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81051
Problem
The following code segfaults under gcc-4.9, 5.4, and 6.3 with std=c++11, but compiles and runs fine under clang-3.7, and VS2015 Update 3. ``` struct A { int Func() { return x++; } int x = 5; }; struct B { B(int) {} }; struct Derived : public virtual A, public B { Derived() : A() // , B(this->Func()) // This works! , B([this](){ return this->Func(); }()) // But this segfaults. { } }; int main() { Derived c; } ``` Is this a bug in gcc? Removing virtual inheritance fixes the segfault.