https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80947
--- Comment #17 from Duarte <duarte at scylladb dot com> --- It also fails on GCC 8.1. This is the reproducer: template<typename T> void foo() { struct inner { inner() { ([this] { }); } }; } int main() { foo<int>(); } It fails when compiled with -fvisibility=hidden, but succeeds with -fvisibility=default. It also compiles fine without the template.